Подключитесь к фоновому приложению iOS, выполняющему роль периферийного устройства из приложения macOS - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть приложение для iOS и macOS, которое интенсивно использует Core Bluetooth. Основная функциональность приложения включает подключение центрального устройства (CBCentralManager) к периферийному устройству (CBPeripheralManager), получение некоторых данных, а затем отключение. Любое устройство, будь то MacOS или iOS, может выступать в качестве центрального или периферийного устройства в зависимости от того, кому нужны данные.

Сначала я подумал, что возникла проблема с моим кодом, но после тестирования приложения с двумя устройствами iOS, одно из них может подключаться и извлекать данные с периферийного устройства, даже если периферийное устройство заблокировано и приложение находится в фон. Теперь в соответствии с документами, касающимися фоновой рекламы на iOS в разделе «Режим фонового выполнения Bluetooth-периферии» , это как-то ожидаемо:

... они могут быть обнаружены только устройством iOS, которое явно сканирует их.

Есть ли способ заставить приложение macOS обнаруживать периферийные устройства, даже если они находятся на заднем плане? Я уверен, что написанный мной код верен, потому что он одинаков для iOS и MacOS.

Обновление 1

Я считаю, что это возможно, просто не зная, как подойти к вопросу. Используя Apple Explorer в MacOS, я могу найти нужное устройство и посмотреть и прочитать данные для своей пользовательской службы.

Этот вывод подтверждается журналами с моего устройства iOS о запросах на чтение, поступивших от моего peripheralManager(CBPeripheralManager, didReceiveRead: CBATTRequest).

...