1

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 のものは認識します。

どんな考えでも大歓迎です!!!

4

1 に答える 1