Заземленный CBPeripheral не остается читаемым - PullRequest
1 голос
/ 01 февраля 2020

У меня есть приложение, которое транслирует CBPeripheral с небольшим количеством текста. Я использую фоновый режим bluetooth-peripheral, чтобы разрешить его трансляцию в фоновом режиме.

При сканировании с другого устройства на переднем плане он работает нормально. Я обнаруживаю периферию, подключаюсь, обнаруживаю сервисы, затем читаю данные из сервиса.

В фоновом режиме, однако, что-то не совсем верно. Я сканирую периферию с моим сервисом, и он находит это нормально. Я подключаюсь, что также идет хорошо. Затем я discoverServices с моим сервисом, который также работает нормально, так как вызывается обратный вызов didDiscoverServices. Однако в этом обратном вызове периферийное устройство имеет нет услуг! peripheral.services пусто. Это не получилось бы так далеко, если бы не было службы, так что дает? error в этом обратном вызове также nil

Все отлично работает при трансляции CBPeripheral на iOS 12

EDIT ----- Говорили слишком рано, кажется что теперь мое устройство iOS 12 начало показывать те же симптомы. Через некоторое время CBPeripheral не работает.

1 Ответ

0 голосов
/ 03 февраля 2020

Проблема была исправлена ​​добавлением клавиши CBAdvertisementDataLocalNameKey при вызове startAdvertising на CBPeripheralManager. Кажется, этот ключ необходим, если вы хотите, чтобы ваш CBPeripheral продолжал вещание в фоновом режиме. Документы Apple не упоминают об этом.

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