Зараз я розробляю програму, яка використовуватиме Bluetooth Low Energy (тестування на Nexus 4). Почавши роботу з офіційними API BLE в Android 4.3, я помітив, що після того, як я вперше підключую пристрій, мені рідко вдається успішно з'єднатися з цим пристроєм або будь-яким іншим пристроєм знову.
Дотримуючись тут інструкції , я можу успішно підключитися до пристрою, сканувати послуги та характеристики та читати / писати / отримувати сповіщення без проблем. Однак після відключення та повторного підключення я часто не можу сканувати послуги / характеристики або не можу завершити читання / запис. Я не можу знайти нічого в журналах, щоб вказати, чому це відбувається.
Після цього мені потрібно видалити програму, вимкнути Bluetooth та перезапустити телефон, перш ніж він почне працювати знову.
Кожен раз, коли відключений пристрій, я обов'язково дзвоню рядок () на об'єкт BluetoothGatt і встановлюю його на нуль. Будь-які уявлення?
Редагувати:
Log відвалів: Для цих журналів я корениться мій телефон і підвищив рівень трасування пов'язаних елементів в /etc/bluetooth/bt_stack.conf
Успішне з'єднання - перша спроба після перезавантаження телефону та встановлення програми. Я вмію підключатися, виявляти всі послуги / характеристики та читати / писати.
Невдала спроба 1 спроби - це наступна спроба після відключення від успішного з'єднання вище. Здається, я зміг виявити характеристики, але перша спроба прочитати повернула нульове значення і незабаром після цього відключилася.
Помилка спроби 2 - Приклад, коли я навіть не в змозі виявити послуги / характеристики.
EDIT 2:
Пристрій, до якого я намагаюся підключитися, базується на мікросхемі TI CC2541. Я отримав TI SensorTag (також заснований на CC2541), щоб пограти з ним і виявив, що TI вчора випустив додаток для Android для SensorTag. Однак у цієї програми є та сама проблема. Я перевірив це на двох інших Nexus 4s з тим самим результатом: Підключення до SensorTag є успішним перший або другий раз, але (згідно з журналами) не вдається знайти сервіси після цього, викликаючи всілякі збої. Я починаю цікавитись, чи це проблема з цією конкретною мікросхемою?