Как сопоставить EAAccessory и CBPeripheral с устройством MFi? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть устройство MFi, которое использует BLE для управления и Classic Bluetooth для потоковой передачи звука.

В приложении я использую каркас coreBluetooth для сканирования BLE и каркас EAAccessory для сканирования классического Bluetooth.Я не хочу, чтобы BLE целевого устройства был подключен, если его классический Bluetooth еще не подключен. Так что мне нужно знать, какой EAAccessory соответствует целевому CBPeripheral.

Я знаком с coreBluetooth, есть строка UUID для идентификации CBPeripheral.Но, похоже, не существует в EAAccessory.У меня есть идея, но я не уверен: возможно, сторона микропрограммы может настроить серийный номер EAAccessory и Данные о производстве CBPeripheral в рекламных данных с тем же серийным номером, так что сторона приложения может проверить, если онито же самое.

Доза, кто-нибудь знает общий способ реализации этого на стороне приложения и на стороне прошивки?

1 Ответ

0 голосов
/ 19 декабря 2018

Я действительно не думаю, что существует связь между 2. BT и BTLE управляются разными чипами на периферийной стороне и на стороне телефона.
Обычно в BT вы используете MAC-адрес для идентификации периферийного устройства на стороне BTLE.MAC-адрес больше не используется, поскольку iOS при первом подключении дает свой собственный идентификатор периферийному устройству.
Вероятно, вы можете сделать это на стороне встроенного программного обеспечения, предоставив сервису характеристику, которая каким-то образом связана с 2.
ОБНОВЛЕНИЕ ПОСЛЕ КОММЕНТАРИИ
Я вижу, насколько я знаю, что лучшей практики не существует. Хуже всего то, что вам приходится обрабатывать соединения по-разному, в основном из-за того, как соединение установлено на стороне iOS,В то время как в BLE вы можете выбрать незашифрованное соединение, которое не требует сопряжения или соединения, на стороне BT я предполагаю, что соединение требуется.
Вероятно, самым простым потоком будет соединение пользователя с устройством BT.Как только вы окажетесь в приложении и обнаружите подключенное устройство BT, используйте метод сканирования для обнаружения сопутствующего устройства BLE путем фильтрации определенного идентификатора службы, предоставляемого вашим устройством. После этого вы также можете фильтровать обнаружения, используя имя BLE, не делая при этомСоединение.
Пакет Adv ограничен по размеру (29 используемых байт), но вы также можете использовать ответ сканирования (31 байт), который предоставляет некоторые дополнительные свойства, такие как данные производителя, которые будут отображаться в словаре (kCBAdvDataManufacturerData).
Как только вы узнаете, что это правильное устройство, вы можете установить соединение, для которого не требуется пара или соединение, но НЕ зашифровано (Pair and Bond потребует от пользователя принять соединение внутри вашего приложения).

...