Определение типа CBPeripheral перед подключением - PullRequest
0 голосов
/ 29 января 2019

Я недавно создал приложение, которое использует CoreBluetooth на iOS для подключения к термопринтеру.Все идет хорошо, кроме одной вещи.Я вижу более 20 устройств Bluetooth, но только одно - это термопринтер.Могу ли я узнать, является ли это периферийное устройство термопринтером или нет до подключения, чтобы я мог отобразить / скрыть его?Спасибо

1 Ответ

0 голосов
/ 29 января 2019

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

Когда вы звоните scanForPeripherals(withServices:options:), вы почти всегда должны передавать список услуг, которые вы поддерживаете.Если вы передаете nil, то вы почти наверняка вызываете его неправильно, если вы не создаете сканер BLE общего назначения.

То же самое верно для discoverServices(_:).Вы очень редко проходите туда nil.Вы передаете список услуг, с которыми вы знаете, как иметь дело.Свойство .services доступно для удобства, когда вы знаете, что уже загрузили службы, но редко бывает так полезно.Если вы позвоните discoverServices(_:), когда в этом нет необходимости, система немедленно отправит вам кэшированные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...