Устройство BLE автоматически отключается от устройства Android. Android BLE - программирование
Подтвердить что ты не робот

Устройство BLE автоматически отключается от устройства Android. Android BLE

Я использую Android Nexus 7 для подключения устройства по каналу Bluetooth Low Energy. Я могу подключить устройство и оставаться на связи, если я не свяжусь с устройством.

Однако, если я включу уведомление об одном конкретном признаке, нажав кнопку, устройство отключится от планшета через несколько секунд передачи данных.

Кто-нибудь знает, в чем проблема? Большое вам спасибо!

Здесь мой код:

    public boolean setCharacteristicNotification(boolean enabled){

      if (mBluetoothAdapter == null || mBluetoothGatt == null) {
          Log.w(TAG, "BluetoothAdapter not initialized");
               return false;      
      }

      BluetoothGattService Service = mBluetoothGatt.getService(UUID_MY_SERVICE);
      if (Service == null) {
          Log.e(TAG, "service not found!");
          return false;
      }

      BluetoothGattCharacteristic characteristic = Service.getCharacteristic(UUID_MY_CHARACTERISTIC);

      final int charaProp = characteristic.getProperties();

      if ((charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFY) > 0) {
          mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);

            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
                    UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
            descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE); 

            mBluetoothGatt.writeDescriptor(descriptor);

          return true;
      }

    return false;

}
4b9b3361

Ответ 1

(Отвечено в вопросе редактирования. Преобразован в ответ на wiki сообщества. См. Какое подходящее действие при добавлении ответа на вопрос к самому вопросу?)

OP писал (а):

Сегодня я решил эту проблему.

Просто измените descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);

to descriptor.setValue(BluetoothGattDescriptor.ENABLE_INDICATION_VALUE);

Follow Up:

После того, как я провел некоторое исследование и тестирование, я обнаружил, что проблема автоматического отключения связана с помехами между Bluetooth и WIFI на Nexus 7. Если я отключил WIFI, проблема с разъединением Bluetooth исчезла. И эта проблема не возникала на Галактике 3,4,5.

Ответ 2

Проблема: у меня была такая же проблема с Tesco Hudl 2, если я передаю некоторые  данных, как только Bluetooth будет подключен, он отключится.

 Решение: Подождите немного  через несколько секунд после подключения, похоже, все в порядке.