Android GATT Services возвращает Null после многих успешных соединений

Я разрабатываю приложение для Android, которое подключается к устройствам BLE, устройство действительно подключается большую часть времени, и я могу фиксировать показания. Но когда-то после многих подключений отключается, Bluetooth On / Off, мой метод класса BluetoothGattCallback

 onServicesDiscovered(BluetoothGatt gatt, int status) 

Со статусом 0 [что означает GATT_SUCCESS].

Теперь, когда я пытаюсь получить BluetoothGattService, как:

 BluetoothGattService service = gatt.getService(getServiceUUID()); 

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

Вы должны сначала открыть все службы для данного устройства, иначе при запуске BluetoothGattService service = gatt.getService(getServiceUUID()); Он вернет null.

Я бы рекомендовал вам добавить функцию onServicesDiscovered и использовать gatt.discoverServices(); вместо.

 @Override // New services discovered public void onServicesDiscovered(BluetoothGatt gatt, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { for (BluetoothGattService gattService : gattServices) { Log.i(TAG, "Service UUID Found: " + gattService.getUuid().toString()); } } } 

Привет из-за низкой энергии Bluetooth нестабилен . И как ваш вопрос определяет, что вы получаете функцию обратного вызова с кодом состояния 0. Затем вместо использования getServivce (UUID). Вы можете использовать метод getServices () для обнаружения доступных услуг. Это может быть проблема uuid !! Возможно, у вас UUID неправильно.

Intereting Posts
Выделение прямоугольной формы не будет отображаться как элемент выбора флажка Gridview исчезает? Инструмент разработчика для разработки базы данных SQLite для Android Как использовать выходной параметр в Java? Приложение не работает в android 4.0 и выше Запустить firebaseUploadReleaseProguardMapping из файла app / build.gradle Собственная библиотека Android, связанная с другой родной библиотекой от aar Как выполнять масштабирование в / из, вращение вместе в Android Создание ImageView внутри моего PagerAdapter в полноэкранном режиме – Как? HTTPS с использованием настроек Retrofit и OkHttp Handshake Лучший способ реализовать оповещения о близости Создание макета с помощью CardView и плавающей кнопки Action Проблемы с попыткой создания PocketSphinxAndroidDemo с использованием NDK Не удалось создать обучающие материалы GStreamer с помощью Android Studio Как читать 16-битный звуковой файл .wav в буфер, подходящий для записи на Android AudioTrack?