Bezdepbonusu7Программирование: статьи и ответы

Вопрос

IPhone VOIP в фоновом режиме

Автор вопроса: rokridiОтветов: 2

Я разрабатываю приложение для iPhone, которое взаимодействует с устройством, отличным от iOS, через Wi-Fi. Мое приложение использует VOIP. Я настроил потоки и добавил необходимые UIBackgroundModes в свой plist .

Проблема в том, что приложение не получает никакой информации от внешнего устройства, когда оно входит в фоновый режим.

Может ли кто-нибудь сказать мне, если я что-то упустил?

  • Я думаю, вам нужно предоставить немного больше подробностей о том, что вы пробовали до сих пор. Может быть, выложите какой-нибудь код? onnoweb 28.03.2012
  • IIRC, сетевые коммуникации отключаются, когда ваши приложения IOS переходят в фоновый режим. KevinDTimm 28.03.2012
  • Я объясняю больше: мое приложение связывается с внешним устройством через WIFI. Когда мое приложение переходит в фоновый режим, ОС кэширует данные, поступающие с внешнего устройства, а затем доставляет данные, когда приложение возвращается на передний план. Проблема в том, что я хочу различать данные, поступающие в фоновом режиме, и данные, поступающие на передний план. Вопрос в том, должен ли я запускать фоновую задачу для обработки поступающих данных, когда приложение находится в фоновом режиме, или я должен держать обработку данных на переднем плане? rokridi 28.03.2012
  • @KevinDTimm: сеанс поддерживается, пока приложение находится в фоновом режиме. Поток продолжает получать данные только тогда, когда я запускаю фоновую задачу. Но я не знаю, должен ли я обрабатывать данные в фоновом режиме или нет (из-за ограниченного времени, отведенного для фоновой задачи) rokridi 28.03.2012
  • @rokridi Если ваша проблема решена, вы можете ответить с подробным объяснением и принять свой или любой ответ. User97693321 22.10.2012

iosiphonebackground-processwifivoip

Ответы

Ответ 1 · рейтинг 1 · Divyang Mithaiwala

Не уверен в реальной проблеме.

Убедитесь, что в соответствии с фоновым приложением VOIP для iOS оно позволит только TCP-соединению быть активным и доступным в фоновом режиме.

Поэтому, если вы/ваш стек используете сокет UDP для VOIP, замените его на TCP.

В случае, если порт UDP остается привязанным к вашему приложению, но он неактивен в фоновом режиме и становится активным в режиме переднего плана.

Ответ 2 · tman78

Я предполагаю, что вы правильно установили необходимые фоновые режимы в plist на основе вашего утверждения. Именно в массиве задается ключ и требуемое значение для аудио и voip. Также у вас есть ключ "приложение не работает в фоновом режиме", добавленный в plist и установленный в NO.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы