UIRequiresPersistentWiFi эквивалент для сотовой связи - PullRequest
6 голосов
/ 13 января 2012

ОК, поэтому я указал ДА ключа *1001* UIRequiresPersistentWiFi моего приложения в ДА *1004*, чтобы iOS не прекращала извлекать данные, когда мое приложение находится в фоновом режиме. Однако, когда пользователь использует сотовую связь (не Wi-Fi), а мое приложение работает в фоновом режиме, загрузка данных останавливается через несколько минут.

Я дважды проверил документы, и, похоже, нет эквивалента UIRequiresPersistentWiFi для сотовой сети, который я мог бы установить.

Можно ли каким-то образом заставить соединения через сотовую сеть выжить, пока приложение находится в фоновом режиме? Есть намеки?

Ура!

Обновление:

Я делаю приложение для интернет-радио. Поток объединен с mp3-файлами, которые я запрашиваю один за другим (не могу запросить их заранее, не могу изменить сторону сервера). Это работает, когда мое приложение находится в фоновом режиме и использует Wi-Fi. Однако при использовании сотовой связи сетевые запросы не выполняются после некоторого времени, проведенного в фоновом режиме. Там нет места для изменения стратегии. Приложение находится в AppStore, и оно работало раньше. Я думаю, что они изменили что-то в новой версии системы.

Более того, мне не нужно дросселирование. Мое радио приложение уже одобрено и находится в AppStore. Поток отправляется со скоростью 128 кбит / с (это максимум), поэтому это не проблема. Похоже, что система отключает мои сетевые запросы (когда в сотовой сети) через некоторое время в фоновом режиме. Однако это происходит только при попытке установить соединение в фоновом режиме.

Описание:

  1. Приложение работает в фоновом режиме и воспроизводит mp3 в потоковом режиме. сеть.
  2. Mp3 заканчивается
  3. Я запрашиваю URL для другого mp3
  4. Запрос не выполнен *.

* работает при использовании WiFi.

Ответы [ 3 ]

11 голосов
/ 19 января 2012

Я вполне уверен, что для сотовых сетей нет ничего подобного.Вот мои рассуждения:

  • Услуга сотовой связи стоит денег.Много денег.В минуту.В отличие от этого, услуга Wi-Fi не стоит денег.
  • AT & T не имеет большой пропускной способности и взимает дополнительную плату с пользователей за использование дополнительной пропускной способности.
  • Apple - это компания, которая хочет сделать работу пользователей удобной.настолько чистые и приятные, насколько это возможно.
  • Когда расходы непомерны по своей вине, пользователи недовольны, а их опыт не очень приятен.

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

Зачем вам нужно постоянное подключение к Интернету, когда ваше приложение в любом случае находится в фоновом режиме (если, я полагаю, вы не создаете приложение для интернет-радио)?Помните, что в фоновом режиме ваше приложение может быть отключено без предупреждения в любое время.Вы можете пересмотреть свою стратегию, если не можете найти способ сделать это.: /

1 голос
/ 23 января 2012

Добавьте audio к вашей UIBackgroundModes записи в Info.plist.

Согласно Apple Docs: In your callbacks, though, you should do only the work necessary to provide data for playback. For example, a streaming audio app would need to download the music stream data from its server and push the current audio samples out for playback. You should not perform any extraneous tasks that are unrelated to playback.

Вы также можете получить некоторое значение из записи voip - вы можете setKeepAliveTimeout:handler: периодически вызывать ваш обработчик для заполнения потока данных.

1 голос
/ 19 января 2012

Я думаю, что нет эквивалента UIRequiresPersistentWiFi, возможно, есть причины, упомянутые Tusting2121.

Но обратите внимание, что UIRequiresPersistentWiFi связано с энергосбережением.Модуль Wi-Fi потребляет энергию, поэтому обычно он отключается через некоторое время, чтобы сэкономить энергию, если не установлено значение UIRequiresPersistentWiFi.Такое энергосбережение, я полагаю, не относится к случаю сотовой связи.

И тот факт, что ваше соединение исчезает через определенные минуты в сотовом режиме, может быть вызвано чем-то совершенно иным, чем копия механизма энергосбережения wifiЗапрос.См., Например, эту статью , в которой говорится, что вы обязаны ограничить свой поток данных 3G.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...