Могу ли я обнаружить другие устройства iOS через Bluetooth в фоновом режиме?

Я хотел бы иметь возможность обнаруживать другие устройства iOS через Bluetooth, пока мое приложение находится в фоновом режиме. Можно ли использовать Bonjour или Game Kit, чтобы сделать это открытие, пока мое приложение не находится на переднем плане?

Можно ли сделать это и сбросить уведомление, если будет обнаружено совместимое устройство?

Кроме того, смогу ли я работать в фоновом режиме во время воспроизведения звука и выполнять это обнаружение?


person senthilMuthu    schedule 17.11.2010    source источник


Ответы (1)


Это невозможно, пока ваше приложение приостановлено. Из Руководство по программированию приложений для iOS:

Отмените любые службы, связанные с Bonjour, перед приостановкой. Когда ваше приложение переходит в фоновый режим и до того, как оно будет приостановлено, оно должно отменить регистрацию в Bonjour и закрыть сокеты прослушивания, связанные с любыми сетевыми службами. Приостановленное приложение все равно не может отвечать на входящие запросы на обслуживание. Закрытие этих служб не позволяет им казаться доступными, хотя на самом деле это не так. Если вы не закроете службы Bonjour самостоятельно, система автоматически закроет эти службы, когда ваше приложение будет приостановлено.

Будьте готовы обрабатывать сбои соединения в ваших сетевых сокетах. Система может разорвать соединения сокета, пока ваше приложение приостановлено по ряду причин. Пока ваш код на основе сокетов подготовлен к другим типам сетевых сбоев, таким как потеря сигнала или сетевой переход, это не должно приводить к каким-либо необычным проблемам. Когда ваше приложение возобновляет работу, если оно сталкивается с ошибкой при использовании сокета, просто переустановите соединение.

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

person Brad Larson    schedule 17.11.2010