Базовое сохранение и восстановление состояния Bluetooth не работает, не могу перезапустить приложение в фоновом режиме

пытаюсь заставить ядро bluetooth разбудить приложение, даже когда ононе работает

Как заявляет Apple, "Поскольку сохранение состояния и восстановление встроено в Core Bluetooth, ваше приложение может включить эту функцию, чтобы попросить систему сохранить состояние вашего приложения.центральные и периферийные менеджеры и продолжать выполнять определенные задачи, связанные с Bluetooth, от их имени, даже если ваше приложение больше не работает. Когда одна из этих задач завершается, система перезапускает ваше приложение в фоновом режиме и дает вашему приложению возможность восстановить его состояние и соответствующим образом обработать событие ».

Я добавил следующий код, чтобы включить эту функцию:

 myCentralManager =
        [[CBCentralManager alloc] initWithDelegate:self queue:nil
         options:@{ CBCentralManagerOptionRestoreIdentifierKey:
         @"myCentralManagerIdentifier" }];

Но обратные вызовы, когда приложение проснулось, никогда не срабатывали.

-(BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
}

-(void)centralManager:(CBCentralManager *)central
      willRestoreState:(NSDictionary *)state {
}

Эти двое никогда не называются.

Как яm тестирую эту функцию пробуждения:

Я добавить "Bluetooth " в фоновом режиме в info.plist, поэтому BLE работает в фоновом режиме.

Запустите CentralManager в моем iphone № 1. начать сканирование.

нажмите home и выйдите, поиграйте в какую-нибудь тяжелую игру, в журнале отладки я увижу: "Завершено из-за давления памяти. Процесс завершен с кодом выхода 0 ", Это для имитации того, как система ios завершает работу фонового приложения из-за нехватки памяти.

запустить маяк с другого iphone № 2 и начать вещание.

результат: эти повторные обратные вызовы никогда не будут вызваны.

Есть идеи, почему это не работает? Если оно'Является ли проблема API, есть ли другой способ перезапустить ваше приложение в фоновом режиме с BLE, когда ваш телефон приближается к маяку BLE? Я'я пробовал использовать ibeacon для запуска приложения, но центральный менеджер ядра bluetooth победилПозволяет подключаться к ibeacon в фоновом режиме.

Спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос