0

2つのデバイスがBluetooth経由で接続されているかどうかを確認しているAndroidアプリを開発しています

以下のコードを使用して、ブロードキャスト レシーバーを登録しています。

    IntentFilter filter1 = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED);
    IntentFilter filter2 = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED);

    this.registerReceiver(mReceiver, filter1);
    this.registerReceiver(mReceiver, filter2);

BroadcastReceiver は次のようになります。

    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        // When discovery finds a device

        if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action))
        {   
            Log.e("bluetooth connected","bluetooth connected");
        }
        else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action))
        {
            Log.e("bluetooth not connected","bluetooth not connected");
        }    
    }
};

これがどのように機能していません。どこが間違っているのかわかりません。助けてください!ありがとう!

4

3 に答える 3

2

マニフェストに BLUETOOTH 権限がありますか?

<uses-permission android:name="android.permission.BLUETOOTH" />

また、レシーバーを 2 回登録して 2 つのフィルターを使用する代わりに、

IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);    

this.registerReceiver(mReceiver, filter);
于 2013-10-15T12:07:20.563 に答える