Моему приложению iPhone требуется постоянное сетевое соединение ... как указать UIRequiredDeviceCapabilities? - PullRequest
3 голосов
/ 26 февраля 2010

Я пытаюсь установить свойства UIRequiredDeviceCapabilities в моем файле Info.plist. Мое приложение требует постоянного сетевого подключения. Если я посмотрю на определение ключа «wifi», оно говорит:

Включите этот ключ, если ваша заявка требуется доступ к сети Особенности устройства.

Итак: ключ "wifi" указывает, что мне нужен WiFi, как подсказывает название ключа? Или это означает, что мне просто нужен доступ к сети, как подсказывает определение ключа?

Ответы [ 4 ]

6 голосов
/ 18 февраля 2011

Если вы полагаете, что собственная (часто расплывчатая) документация Apple, указание свойств в UIRequiredDeviceCapabilities вызывает фильтрацию в точке доставки Apple (магазине приложений). Так что, если вы указали «wifi», теоретически устройства без wifi не смогут установить ваше приложение. Тем не менее, все iDevices пока поддерживают Wi-Fi.

Кстати, UIRequiresPersistentWiFi действительно имеет отношение к Wi-Fi напрямую в некоторых отношениях. Если вы установите для этого свойства значение true, из моих собственных тестов я видел, что:

  • во время работы приложения Wi-Fi-связь будет по-прежнему доступна даже после истечения времени ожидания 30 минут
  • если приложение работает, и в настоящее время таймер таймера Wi-Fi отключен (но Wi-Fi включен), при первом доступе к сети включается радио wifi
  • если приложение работает и Wi-Fi включен, но пользователь в настоящее время не подключен ни к одной точке доступа, доступ к сети приводит к появлению системного приглашения присоединиться к одной из точек доступа

Или, другими словами: без этого флага связь через Wi-Fi в вашем приложении может перестать работать. Или иногда вы можете запустить свое приложение на ipod или ipad и обнаружить, что сетевые коммуникации не работают, даже если Wi-Fi включен, и вы находитесь рядом с хорошей точкой доступа.

Печально, что документация Apple настолько запутанная и запутанная.

2 голосов
/ 15 июля 2010

Прежде всего, UIRequiresPersistentWiFi относится не только к WiFi, но и является просто способом заявить, что ваша программа является сетевым приложением и будет постоянно использовать любое соединение. Об этом, в частности, упомянул разработчик Apple, проводивший презентацию WWDC по сетевому программированию (я думаю, в прошлом году).

Во-вторых, клавиша wifi требуемых возможностей устройства, похоже, относится, в частности, к WiFi. У iPhone Unicom, доступного в Китае, Wi-Fi выключен (но он может подключаться к сети с помощью сотовой связи), и я слышал о сообщениях, что клавиша wifi вызывает (или, по крайней мере, вызывает) проблемы с установкой.

1 голос
/ 19 апреля 2010

Без этой клавиши iPhone отключит Wi-Fi после определенного периода бездействия. С помощью этого ключа Wi-Fi постоянно включен для вашего приложения.

0 голосов
/ 21 мая 2010

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

Клавиша UIRequiredDeviceCapabilities выполняет только то, что указывает название, указывает, какие возможности должны быть у вашего приложения в устройстве. Будь то Wi-Fi, GPS, магнитометр и т. Д.

...