Специфические данные производителя по BLE - PullRequest
0 голосов
/ 16 сентября 2018

Я новичок в программировании BLE на Android.

В моих первых приложениях, использующих BLE на Android, у меня возникла большая проблема.

Я получил ScanRecord от Apple Bluetooth Headset, используяэта функция.

@ Переопределить public void onScanResult (int callbackType, результат ScanResult)

, и я получил данные производителя, используя Apple corp, ID (0x4C).после этого я не знаю, как декодировать данные производителя.

Я хочу получить дополнительную информацию о гарнитуре Bluetooth, такую ​​как информация об аккумуляторе, информацию о направлении и т. д., но я не знаю, как декодировать данные производителя.

Я также искал документ по разработке Apple (https://developer.apple.com/accessories/Accessory-Design-Guidelines.pdf) Но этот справочный документ мне не помог.

В любом случае, кто-нибудь, кто скажет мне, как решить эту проблему? !!?Спасибо, что прочитали мой вопрос.

1 Ответ

0 голосов
/ 01 октября 2018

Хорошо, из вашего комментария видно, что вы отсканировали устройство через BLE и хотите использовать одну из предлагаемых услуг, чтобы получить информацию, такую ​​как информация об аккумуляторе.

  1. Первым делом вам необходимо установить соединение с устройством BLE. Вставленный вами результат сканирования имеет метод getDevice , который вам нужно вызвать

  2. После того, как вы получите устройство, вы можете вызвать его connectGatt метод. Это попытается соединить ваш телефон и устройство BLE.

  3. Метод connectGatt из шага 2 требует обратного вызова . Когда соединение будет успешным или неудачным, обратный вызов сработает onConnectionStateChanged . В случае успеха он будет иметь статус успеха . Этот метод также даст вам устройство gatt , которое мы будем использовать на шаге 4.

  4. Если шаг 3 прошел успешно, мы можем предположить, что ваш телефон подключен. Следующее, что мы хотим сделать, это открыть сервисы. Это можно сделать с помощью устройства gatt DiscoverServices .

  5. Когда службы обнаружены, ваш обратный вызов сработает onServicesDiscovered . Теперь вы можете пользоваться услугами. В зависимости от API наушников они захотят, чтобы вы прочитали или подписались на характеристику и дескриптор услуг. Поскольку я не знаю API, я не могу вам помочь. Но в конечном итоге вам нужно будет использовать одно или несколько из следующего:

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

...