1

我正在编写一个 android 应用程序来与 BLE 设备通信。该应用程序是 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

1

看来这最终是一个设备问题。作为最后的手段,我重新启动了我正在测试的 Galaxy S5,并且一切正常。

我想应该先尝试一下!!!

于 2017-03-28T14:20:18.480 回答