Не удается обнаружить периферийное устройство или службу Bluetooth с устройства iOS.

Я пытаюсь сканировать устройство Bluetooth, используя платформу CoreBluetooth. Устройство является прототипом, предоставленным клиентом.

Я считаю, что моя реализация CBCentralManagerDelegate верна, но я никогда не получаю обратный вызов centralManager: didDiscoverPeripheral: advertisementData: RSSI:. Даже если я зарегистрируюсь для nil сервисных UUID, которые должны запускать обратные вызовы обнаружения для всех устройств, ничего не произойдет.

Я бы подумал, может ли Bluetooth-устройство быть дефектным, за исключением вот этой морщинки... когда я запускаю приложение для отладки Bluetooth LightBlue на своем iPad, прототип устройства отображается в списке вместе с некоторыми службами. На самом деле, как только я использую функцию «клонирования» этого приложения для непосредственного воспроизведения сервиса с iPad, срабатывает обратный вызов моего делегата.

Я могу опубликовать пример кода, но это действительно шаблонный материал (я полагаю). Эксперты по Bluetooth: есть ли очевидные причины моего поведения?


person Ben Packard    schedule 06.07.2014    source источник
comment
Несколько строк кода было бы интересно. Вы проверяли CBCentralManager перед сканированием?   -  person Larme    schedule 07.07.2014
comment
Спасибо, скоро что-нибудь добавлю. Проверять на что?   -  person Ben Packard    schedule 07.07.2014
comment
Например, если [yourCentralManager state] == CBCentralManagerStatePoweredOff, вы не сможете сканировать...   -  person Larme    schedule 07.07.2014


Ответы (1)


Некоторые моменты для проверки: убедитесь, что вы правильно установили делегата вашего CCBCentralManager. Если ваше устройство привязано к устройству iOS, я полагаю, что didDiscoverPeripheral не следует запускать, но в этом случае приложение LightBlue не будет отображать какие-либо службы на экране «Сканирование периферийных устройств ...».

Удачи

person Maria    schedule 07.07.2014