Устройство 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;
}
Ответы
Ответ 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 будет подключен, он отключится.
Решение: Подождите немного
через несколько секунд после подключения, похоже, все в порядке.