Просыпайтесь в приложении ios, когда устройство Bluetooth находится рядом с

Я запускаю базовый bluetooth в фоновом режиме для сканирования устройства. Он работает отлично, и в значительной степени останавливается, когда я нажимаю приложение вручную. Apple docs заявляет, что приложение иногда может разбудить периферийное устройство, и это может привести к тому, что оно приостановлено в течение примерно 10 секунд или около того, выполните некоторую операцию, а затем вернитесь к приостановленному.

Источник: https://developer.apple.com/library/IOs/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothBackgroundProcessingForIOSApps/PerformingTasksWhileYourAppIsInTheBackground.html

Для этого нужно ли периферийное устройство уже "подключиться", чтобы разбудить приложение? Или может ли любое новое (неоткрытое) периферийное устройство активировать приложение?

Ответ 1

Ваше приложение будет только разбужено для периферийных событий (соединение/отключение и т.д.). Однако, если пользователь решит убить ваше приложение (прокручивание в iOS 7), ваше приложение не пробудится для этих событий. Система iOS удалит вас, пока пользователь не откроет ваше приложение еще раз.

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

И что касается вашего последнего вопроса: НЕТ, сканирование, а затем поиск некоторых периферийных устройств не пробудит ваше приложение в фоновом режиме. Он применим только для предварительно определенных периферийных устройств.