1

Bluetoothがデバイスから切断されたときに「キャッチ」しようとしています。私はこのコードを使用しています:

if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){
            deleteNotification();
            setWarningState(WarningState.RedWarning);
            showNotification("You are parked");

ただし、リモートデバイスをオフにするか、電話のBluetoothトグルをオフにしてBluetoothを切断すると、if文には入りません。

これを使用しているとき:

BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)

正常に動作しています(接続が確立されている場合)。それはなぜですか、どうすればそれを機能させることができますか? ありがとう!

4

2 に答える 2

6

以下の IntenFilters を登録しましたか

IntentFilter f1 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
IntentFilter f2 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);
this.registerReceiver(mReceiver, f1);
this.registerReceiver(mReceiver, f2);
于 2012-05-02T09:54:00.127 に答える
0
 IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
        registerReceiver(mBluetoothReceiver, filter);

 private final BroadcastReceiver mBluetoothReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();

            if (action!=null && action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
                final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
                        BluetoothAdapter.ERROR);
                switch (state) {
                    case BluetoothAdapter.STATE_OFF:

                        break;
                    case BluetoothAdapter.STATE_ON:

                        break;

                }
            }
        }
    };
于 2019-03-08T11:00:09.977 に答える