モバイルデバイス(スキャナ)から、接続可能なウェアラブル(ブロードキャスタ)のディスクリプタに書き込もうとしています。ウェアラブル上Android BLE:GATT_WRITE_NOT_PERMITTEDでディスクリプタ/特性書き込みが失敗する
、私は携帯電話で
readCharacteristic = new BluetoothGattCharacteristic(Constants.READ_CHAR_UUID,
BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_READ);
readCharacteristic.addDescriptor(new BluetoothGattDescriptor(Constants.NOTIFY_DESC_UUID,
BluetoothGattDescriptor.PERMISSION_READ | BluetoothGattDescriptor.PERMISSION_WRITE));
として記述子を定義している、私は
BluetoothGattDescriptor descriptor = readCharacteristic.getDescriptor(Constants.NOTIFY_DESC_UUID);
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE)
と特性に書き込みをしてみてください残念ながら、これは
に状況GATT_WRITE_NOT_PERMITTEDで失敗ウェアラブルlogcatでは、gatts_write_attr_perm_checkを参照してください - GATT_WRITE_NOT_PERMIT。
特性に書き込むときも同じことが起こります。
奇妙なことは、iOSスキャナを使用すると書き込みが成功するということです。これは、ウェアラブル部品が正しいことを意味します。
私はマニフェストの権限があります。誰がどのようにアイデアを持っています ネクサス5倍の6.0.1 API 23、 モト360 5.1.1 API 22
:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
使用するデバイスをこのディスクリプタ/特性書込み問題を修正しますか?
おかげで、私は、ディスクリプタにPERMISSION_WRITE_SIGNED_MITMにしようとしたが、それへの書き込みしようとすると、今、私は上のステータス1を取得しますonDescriptorWrite。私はそのGATT_FAILURE = 0x101だと思いますか?助けてくれる何か他のアイデアはありますか? –
残念ながらログはありますか? –
私も投稿を編集しました。通知を有効にしようとしている場合は、サンプルに従ってください。 –