-1
奇怪的情況發生在相同的代碼爲Android 4.4.2操作系統三星和三星(A8)Android 5.1.1。Android Ble寫
if(mBluetoothGattCharacteristic==null){
return;
}
byte [] mCommandData=new byte[64];
mCommandData[0]=Constants.REMOTE_CMD;
mCommandData[1]=(byte) mRemoteCommand;
mBluetoothGattCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);
boolean isUpdated= mBluetoothGattCharacteristic.setValue(mCommandData);
boolean isWriteDone=mBluetoothGatt.writeCharacteristic(mBluetoothGattCharacteristic);
LogUtils.i("LOG", "Ble Write set is---"+ isUpdated + " Characteristics Write done"+ isWriteDone);
/**
* Create New Command Release Key
*/
byte [] mCommandRelease=new byte[64];
mCommandRelease[0]=Constants.REMOTE_CMD;
mCommandData[1]=(byte)Constants.IR_KEY_RELEASE;
isUpdated= mBluetoothGattCharacteristic.setValue(mCommandData);
isWriteDone=mBluetoothGatt.writeCharacteristic(mBluetoothGattCharacteristic);
LogUtils.i("LOG", "Ble Write set is---"+ isUpdated + " Characteristics Write done"+ isWriteDone);
在上面的代碼爲Android 4.4.2 writeCharacteristic
兩個命令寫給真。
但是在android系統的情況5.1.1給它真正的第一次寫,當它繼續旁邊寫它提供虛假的writeCharacteristic
現在的解決方案我想到的是Android 5.1.1我不得不等待爲onCharacteristicWrite
,然後寫下一個命令。
如果有人知道這樣的問題,並指出我是否僅發生在三星設備上?
這是正確的解決方案。在Android的BLE API中,一次只能有一次優秀的GATT操作。 – Emil