В настоящее время я пытаюсь разработать приложение, связанное с Bluetooth, и у меня возникают проблемы со сканированием в фоновом режиме.IOS Developpement: Background BLE-сканирование
Я следил за всем учебным пособием по Bluetooth для iPhone Apple IOS, но не могу понять, почему сканирование не работает в фоновом режиме (мой info.plist правильно настроен для управления BLE Фоновые задачи, как центральные, так и периферийные).
Что я испытывал до сих пор:
1 - Когда мои два устройства находятся в пределах и на переднем плане, сканирование работает хорошо.
2 - Когда периферийное устройство находится в фоновом режиме, а центральный активен на переднем плане, сканирование также работает, хорошо известно периферийное устройство.
Здесь приходит неприятности
3 - первый я запускаю мое периферийное устройство, и я положил приложение в фоновом режиме. Затем на периферийном устройстве I отключите bluetooth, я запускаю приложение, я положил его в фоновом режиме, и я включил Bluetooth. В моем коде -(void)centralManagerDidUpdateState:(CBCentralManager *)central
вызывает сканирование [centralmgr scanForPeripheralsWithServices:[NSArray arrayWithObject:servicesUUID] options:scanOptions];
, функция, которая отлично работает на переднем плане. Но ничего не происходило, периферийное устройство никогда не обнаруживалось центральным.
4 - я запускаю центральный, bluetooth активирован, и я положил его в фоновом режиме. Затем я взял свое периферийное устройство, я вышел из диапазона bluetooth (в конкретном случае я пошел в свой супермаркет, чтобы купить немного пива, чтобы утопить мое горе), я запускаю его там, а также активирован bluetooth - я положил его в фоновом режиме и я вернулся в ближайшем окружении. Снова ничего не произошло, центральные районы не обнаружили периферийного.
Кроме того, после случаев 3 и 4, если я просто поставлю центральную часть на переднем плане (периферийное устройство остается в фоновом режиме), перезапуск обнаружения, не делая ничего другого. Как будто сканирование было успешно запущено в случае 4, но ждет, пока приложение вступит в силу, чтобы фактически начать обнаружение других устройств.
Есть ли у кого-нибудь идея о том, как продолжить/преодолеть проблему?
Спасибо!
Ps: Я извинить за мой английский, я немного ржавый
Я прочитал этот ответ, но в моем CBCentral, я уже указать UUID службы я хочу, и она работает очень хорошо, когда я просматриваю на переднем плане, когда периферийное находится в фоновом режиме. Согласно этому сообщению, он не должен работать, предполагая, что мое центральное лицо ищет конкретный UUID, а мое периферийное устройство находится в фоновом режиме. Я ошибаюсь? – Olympiloutre
Возможно, что-то изменилось, потому что этот ответ был отправлен в 2013 году – Neo
Проверьте, можете ли вы искать UUID, которые в области переполнения могут работать – Neo