Я пытаюсь прочитать значение температуры из профиля здоровья. health thermometer service. в соответствии с official google ble devlopment page, когда я пытаюсь уведомить характеристику термометра здоровья для чтения температуры, я пытаюсь записать значение дескриптора (Конфигурация клиентских характеристик), используя writeDescriptor метод обратного вызова writeDescriptor return status 5 согласно google, это GATT_INSUFFICIENT_AUTHENTICATION. поэтому я комментирую код writedescriptor и пытаюсь вызвать метод mBluetoothGatt.setCharacteristicNotification (характеристика, включен); но onCharacteristicChanged метод никогда не вызывал. когда я разговариваю с командой ios devloper. они сказали, что они никогда не записывают значение дескриптора, они просто устанавливают уведомление в true, и они получают значение температуры от одного и того же чипа. , чтобы написать значение дескриптора необходимо разработчику Android, чтобы получить уведомление ??? , так что, наконец, я пытаюсь запустить официальное приложение bluetooth с сайта bluetooth.com для тестирования, они просто отключили все три кнопки уведомлять чтение и запись ??? спасибо и извините за мой английскийbluetooth уведомление о низкой энергии
[UPDATE]
выяснить некоторый журнал, который может вызвать некоторые проблемы, склеивания, пожалуйста, помогите мне, если у вас есть какое-либо решение для этого.
Short-Term ключ, генерируемый еще войти как ошибка
11-08 11: 26: 44.392: E/BT-SMP (1014): СТК Сформированпосле этого состояния связи изменения резко МАЕ это вызывает недостаточную аутентификацию
11-08 11: 26: 49.437: I/BluetoothBondStateMachine (1014): bondStateChangeCallback: Status: 0 Адрес: 00: 16: A4: C0: FF: EE newState: 2
11-08 11: 26: 49.437: D/BtGatt.btif (1014): btif_gattc_upstreams_evt: Событие 9
11-08 11: 26: 49.437 : Е/BluetoothBondStateMachine (1014): В стабильном состоянии, получил недопустимый NewState: 12
[UPDATE]
после обновления KITKAT 4.4 на Nexus 7. добавить два метода
device.createBond();
device.setPairingConfirmation(true);
работает для меня сейчас, я могу прочитать зашифрованную характеристику. но все еще нестабилен. но некоторые успехи я получил.
Спасибо за ответ, но почему разработчик ios получает значение температуры, не устанавливая значение дескриптора, просто устанавливая уведомление true ??, поэтому нам нужно создать две разные прошивки для аппаратуры термометра для ios и других для android ???? ??? – mcd
@mcd Вам не нужно создавать две разные прошивки. Тот же самый термометр будет работать как на Android, так и на iOS, но в приложении для Android вы должны сделать дополнительный вызов для написания дескриптора, чтобы он работал. Я предполагаю, что на самом деле iOS также записывает дескриптор, но iOS делает это автоматически при настройке уведомления на true. – reTs
спасибо. Я уже пытаюсь написать дескриптор, но он дает мне код состояния метода обратного вызова onWriteDiscriptor для вызова 5. И я пытаюсь прочитать характеристику с использованием readCharacteristic (характеристика); метод return false – mcd