Я разрабатываю BLE в Android, я могу сканировать, подключать и писать характеристики для устройства BLE.
Я вызываю следующую функцию для передачи BluetoothGatt
и characteristic
в AsyncTask
при нажатии Button
.
write_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new WriteCharacteristic(mBluetoothGatt , HueCharacteristic).execute();
}
});
Код характеристики записи выглядит следующим образом:
private class WriteCharacteristic extends AsyncTask<String, Void, String> {
public BluetoothGatt mGatt;
public BluetoothGattCharacteristic mCharacteristic;
public WriteCharacteristic(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic){
mGatt = gatt;
mCharacteristic = characteristic;
}
@Override
protected String doInBackground(String... urls) {
mGatt.writeCharacteristic(mCharacteristic);
return null;
}
}
Но я пытаюсь нажать кнопку последовательно, кажется, что Android не записывал каждый characteristic
в устройство BLE.
Если я нажимаю кнопку последовательно подряд 5 раз, это будет потерять 1 ~ 3 раза. Он записывает только characteristic
в устройство BLE два раза.
Вопрос:
Is there any better way to write characteristic consecutive and stable to BLE device for Android?