BLE デバイスと通信するための Android アプリを作成しています。アプリは iOS バージョンを再現したものですが、書き込みリクエストは onCharacteristicWrite 内で GATT_REQUEST_NOT_SUPPORTED レスポンスを発生させます
作業目的の C コード
const uint8_t bytes[] = {0x01,0x02,0x00,0x00};
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
[_device writeValue:data forCharacteristic:_dataCommsCharacteristic type:CBCharacteristicWriteWithResponse];
GATT_REQUEST_NOT_SUPPORTED を受け取る同等の Android/Java コード
byte bytes[] = {0x01,0x02,0x00,0x00};
dataCommsCharacteristic.setValue(bytes);
boolean writeStatus = mGatt.writeCharacteristic(dataCommsCharacteristic);
それから
@Override
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic
characteristic, int status) {
if (status == BluetoothGatt.GATT_REQUEST_NOT_SUPPORTED){
Log.d(TAG,"Request not supported");
}
}
ここで明らかに明らかな何かが欠けていますか?! 私にとって、上記の 2 つのスニペットは本質的に同じものですが、デバイスは Android のものを認識しませんが、iOS のものは認識します。
どんな考えでも大歓迎です!!!