我的iPhone应用程序需要持久的网络连接...如何指定UIRequiredDeviceCapabilities?

时间:2010-02-25 23:58:54

标签: iphone info.plist

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

  

如果您的申请,请包含此密钥   需要访问网络   设备的功能。

所以:“wifi”键是否表示我需要WiFi,因为密钥名称会建议?或者这是否意味着我只需要网络访问,因为关键定义会建议?

4 个答案:

答案 0 :(得分:6)

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

顺便说一句,UIRequiresPersistentWiFi 在某些方面直接与wifi有关。如果你将这个属性设置为true,那么从我自己的测试中我已经看到了:

  • 在应用程序运行时,即使超过30分钟超时,仍然可以继续使用wifi通信
  • 如果应用程序正在运行并且wifi收音机当前超时'关闭'(但启用了wifi),首先网络访问开启wifi收音机
  • 如果应用程序正在运行且启用了wifi,但用户当前未加入任何接入点,则网络访问会导致系统提示符显示加入其中一个接入点

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

令人遗憾的是,Apple的文档如此混乱和令人困惑。

答案 1 :(得分:2)

首先,UIRequiresPersistentWiFi不仅仅适用于WiFi,而只是表明您的程序是网络应用程序并且将持续使用任何连接的方式。特别是苹果开发人员在网络编程上做了WWDC演示(去年,我认为)。

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

答案 2 :(得分:1)

如果没有此键,iPhone将在一定量的不活动后禁用wifi。使用此键,可以为您的应用永久启用wifi。

答案 3 :(得分:0)

如果你需要持久的wifi,你应该使用密钥UIRequiresPersistentWiFi

UIRequiredDeviceCapabilities键只会显示名称所指示的内容,指定您的应用需要设备具备哪些功能。无论是wifi,gps,磁力计等等。