Исключение Gatt 133 для характеристики чтения, за которым следует gatt 22

Проблема:

  • Я получаю исключение 133 GATT при попытке прочитать характеристики.

  • Я сделал задержку для чтения, но, к сожалению, это не работает, а затем возникает ошибка GATT 22.

  • Это происходит на нескольких устройствах, но я не знаю, как решить эту проблему.

Код:

public void performRead() {
    printMessage("\nperform READ started...");
    UUID serviceuid = UUID.fromString(UUID_SERVICE);
    if (BDA.getmBluetoothGatt() == null)
        return;

    BluetoothGattService service = BDA.getmBluetoothGatt().getService(
            serviceuid);
    UUID characteristicuid = UUID.fromString(UUID_CHARACTERISTIC_STATUS);
    BluetoothGattCharacteristic characteristic = null;
    if (service != null) {
        characteristic = service.getCharacteristic(characteristicuid);
    }
    if (characteristic != null) {
        boolean isSuccess = BDA.getmBluetoothGatt().readCharacteristic(characteristic);
        printMessage("isSuccess fire = " + isSuccess);
    }
}

Обратный звонок:

  @Override
    public void onCharacteristicRead(BluetoothGatt gatt,
                                     BluetoothGattCharacteristic characteristic, int status) {
        super.onCharacteristicRead(gatt, characteristic, status);
        String intentAction = "";

        if (status == BluetoothGatt.GATT_SUCCESS) {
            intentAction = MyUtils.ACTION_READ_SUCCESS;
            broadcastNotifyUpdate(characteristic,intentAction);
        } else {//**status - 133
            intentAction = MyUtils.ACTION_GATT_CHARACTERISTIC_ERROR;
            broadcastUpdate(intentAction,""+status);
        }
    }

person prasanthMurugan    schedule 01.12.2017    source источник
comment
Устройство BLE будет обновлять соединение с определенным интервалом. Таким образом, есть вероятность, что проблема с пакетом обновления соединения. Вы можете попытаться избежать всех задержек после успешного подключения. Проверьте синхронизацию (подключите, чтобы прочитать характеристику) рабочего и нерабочего устройства.   -  person Parth    schedule 05.12.2017
comment
@Parth спасибо за ответ. Но у меня нет задержки после успешного подключения. У меня есть задержка перед подключением GATT, после этого у меня нет задержки. Не уверен, почему я получаю gatt 133 в readcharacteristics, за которым следует исключение состояния соединения 22.   -  person prasanthMurugan    schedule 05.12.2017
comment
Я также получаю ту же ошибку на Android7.0 на Nokia 2, он отключается сразу через 30 секунд после передачи данных   -  person Tejas    schedule 01.03.2018
comment
Я решил проблему повторным подключением. При обратном вызове gatt, когда вы получаете ошибку 133, попробуйте снова подключить gatt, если вы снова получите ошибку gatt, тогда нет возможности, вам нужно отключить gatt, а затем вам нужно будет обнаружить службы.   -  person prasanthMurugan    schedule 02.03.2018