Ich schreibe eine Android-App, um mit einem BLE-Gerät zu kommunizieren. Die App ist eine Erholung von einem iOS-Version jedoch jede Schreibanforderung Objective C-CodeGATT_REQUEST_NOT_SUPPORTED keine weiteren Informationen verfügbar?
ARBEITS
const uint8_t bytes[] = {0x01,0x02,0x00,0x00};
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
[_device writeValue:data forCharacteristic:_dataCommsCharacteristic type:CBCharacteristicWriteWithResponse];
Equivalent Android/Java-Code ein GATT_REQUEST_NOT_SUPPORTED Antwort innerhalb onCharacteristicWrite wirft die
eine GATT_REQUEST_NOT_SUPPORTED recievesbyte bytes[] = {0x01,0x02,0x00,0x00};
dataCommsCharacteristic.setValue(bytes);
boolean writeStatus = mGatt.writeCharacteristic(dataCommsCharacteristic);
dann
@Override
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic
characteristic, int status) {
if (status == BluetoothGatt.GATT_REQUEST_NOT_SUPPORTED){
Log.d(TAG,"Request not supported");
}
}
Fehle mir etwas, was hier offensichtlich ist ?! Für mich sind die obigen 2 Snippets im Wesentlichen das Gleiche, aber das Gerät erkennt den Android nicht, erkennt aber das iOS eins.
Alle Gedanken werden sehr geschätzt !!!
die iOS eine möglicherweise die Sicherheitsstufe automatisch (ich weiß nichts über die Details der beiden Implementierungen, aber dieser Fehler ist manchmal im Zusammenhang mit der Anforderung mit einer niedrigeren Sicherheitsstufe als erforderlich ist) –