1

10という特徴的なプロパティをint変数charaPropに持ってきました。

final int charaProp = characteristic.getProperties();

そして、2(BluetoothGattCharacteristic.PROPERTY_READ) であるフィルタリング プロパティを int 変数プロパティに取り込みました。

final int property = BluetoothGattCharacteristic.PROPERTY_READ;

読み取りまたは書き込みのどちらを実行するかを確認するために、charaProp とプロパティのビット単位の AND 演算を行いました。

final int tmp = charaProp & property;

おかしなことに、結果が 0 になる AND 演算子が 2 を生成します。 スクリーン ショット

そして、フローは読み取りアクションを実行します。

 if ((charaProp & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
             mBluetoothLeService.readCharacteristic(characteristic);
 }

なぜこれが起こるのか本当にわかりませんか?

私を助けてください。前もって感謝します!!!

4

3 に答える 3