1、问题描述
最近进行Android ble的开发,遇到最大的问题就是在往characteristic中写入数据的时候,会有一个成功率抖动的问题,常会出现第一次写入失败,必须再写一次才成功的情况。
每次往characteristic中写入数据的时候,应该要回调onCharacteristicWrite这个方法的,如果失败了,根本就不回调这个方法,导致我甚至无出判断成功还是失败,无法再逻辑代码中去重写,只能在交互界面重复操作。
2、具体代码
下面我贴出我大致代码。
2.1BluetoothGattCallback
private void connectDevice() {
mDevice.connectGatt(this, false, new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
if (newState == BluetoothProfile.STATE_CONNECTED) {
Log.d("MainActivity", "连接成功");
mGatt = gatt;
mGatt.connect();
gatt.discoverServices();
}
}
@Override
public void onServicesDiscovered(final BluetoothGatt gatt, int st