本文實例講述了Android開發實現實時檢測藍牙連接狀態的方法。分享給大家供大家參考,具體如下:
本程序能實時監聽并檢測Android藍牙的連接狀態,無論是通過界面上的switch按鈕打開/關閉手機藍牙,還是手動打開/關閉手機藍牙,程序都能監聽當前的狀態。
一、軟件界面

二、程序實現
① switch開關—-打開/關閉藍牙
Switch switchTest = (Switch) findViewById(R.id.switch1);switchTest.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { mBluetoothAdapter.enable();//打開藍牙 } else { mBluetoothAdapter.disable();// 關閉藍牙 } }});② 查看藍牙狀態監聽
Button btn = (Button) findViewById(R.id.button);btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "bluetooth is " +bluetoothStatus, Toast.LENGTH_SHORT).show(); }});③ 監聽藍牙連接狀態
AndroidManifest權限設置:
<uses-permission android:name="android.permission.BLUETOOTH"/><uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
可點擊此處查看Android權限設置
監聽代碼:
//注冊藍牙監聽mContext.registerReceiver(mReceiver, makeFilter());//注銷藍牙監聽//mContext.unregisterReceiver(mReceiver);private IntentFilter makeFilter() { IntentFilter filter = new IntentFilter(); filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); return filter;}private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { switch (intent.getAction()) { case BluetoothAdapter.ACTION_STATE_CHANGED: int blueState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, 0); switch (blueState) { case BluetoothAdapter.STATE_TURNING_ON: Log.e("TAG", "TURNING_ON"); break; case BluetoothAdapter.STATE_ON: bluetoothStatus="on"; Log.e("TAG", "STATE_ON"); break; case BluetoothAdapter.STATE_TURNING_OFF: Log.e("TAG", "STATE_TURNING_OFF"); break; case BluetoothAdapter.STATE_OFF: bluetoothStatus="off"; Log.e("TAG", "STATE_OFF"); break; } break; } }};附:完整實例代碼點擊此處本站下載。
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答