3

我正在尝试在我的 Info.plist 文件中设置 UIRequiredDeviceCapabilities 属性。我的应用需要持久的网络连接。如果我查看“wifi”键的定义,它会说:

如果您的应用程序需要访问设备的网络功能,请包括此密钥。

那么:“wifi”键是否表明我需要 WiFi,正如键名所暗示的那样?或者这是否意味着我只需要网络访问,正如关键定义所暗示的那样?

4

4 回答 4

6

如果您相信 Apple 自己的(通常含糊不清的)文档,则在 UIRequiredDeviceCapabilities 中指定属性会导致在 Apple 的交付点(应用商店)进行过滤。因此,如果您指定“wifi”,理论上非 wifi 设备将无法安装您的应用。但是,到目前为止,所有的 iDevices 都支持 wifi。

顺便说一句,UIRequiresPersistentWiFi在某些方面确实与 wifi 直接相关。如果您将此属性设置为 true,从我自己的测试中我已经看到:

  • 在应用程序运行时,即使在 30 分钟超时之后,wifi 通信仍将继续可用
  • 如果应用程序正在运行并且 wifi 无线电当前超时为“关闭”(但 wifi 已启用),则首先网络访问会打开 wifi 无线电
  • 如果应用程序正在运行且 wifi 已启用,但用户当前未加入任何接入点,则网络访问会导致出现系统提示以加入其中一个接入点

或者,换一种说法:如果没有设置此标志,您的应用程序中通过 wifi 进行的通信似乎会停止工作。或者有时您可以在您的 ipod 或 ipad 上启动您的应用程序并发现网络通信失败,即使启用了 wifi 并且您靠近一个良好的热点。

可悲的是,Apple 的文档如此混乱和混乱。

于 2011-02-18T10:05:39.967 回答
2

首先,UIRequiresPersistentWiFi它不仅仅与 WiFi 相关,而只是一种声明您的程序是网络应用程序并且将持续使用任何连接的方式。苹果开发人员在网络编程的 WWDC 演示中特别提到了这一点(我认为是去年)。

其次,wifi所需设备功能的关键似乎确实与 WiFi 相关。在中国销售的联通 iPhone 已关闭 WiFi(但能够使用蜂窝连接连接到网络),我听说过有关wifi密钥(或至少是)导致安装问题的报告。

于 2010-07-15T16:15:22.450 回答
1

如果没有此键,iPhone 将在一定程度的不活动后禁用 wifi。使用此密钥,您的应用程序将永久启用 wifi。

于 2010-04-19T08:01:23.680 回答
0

如果您需要持久 wifi,您应该使用 key UIRequiresPersistentWiFi

键的UIRequiredDeviceCapabilities作用与名称所指的一样,指定您的应用程序需要设备具有哪些功能。无论是wifi,gps,磁力计等。

于 2010-05-21T09:53:21.340 回答