为锁定的iphone保持wifi / 3g活着

时间:2010-09-13 13:56:02

标签: iphone

我无法在用户锁定后需要在iphone应用程序中运行30分钟后断开连接。

该应用程序通常不会睡眠,但如果用户如此选择,则可能会锁定显示屏。我正在为应用程序添加一项新功能,该功能以1秒的间隔通过网络发送数据。在此之前,应用程序没有网络要求,并且在用户锁定时它已根据需要(音乐,基于计时器的进程)运行。

答案似乎在这里:
Wifi connection doesn't stay alive when asleep, with iOS4

但是向info.plist添加UIRequiresPersistentWifi布尔值并不会使它在30分钟后无法超时wifi(我在Touch,iOS4.02上测试),即使应用程序忙于通过连接发送数据。也许这只适用于显示器自身休眠而非用户锁定的情况?

相关,我认为没有办法在任何时间间隔“搅拌”显示器?用户按下主页按钮足以带回wifi;解锁是没有必要的。

另外,我已经在互联网上看到,在WWDC中声明,UIRequiresPersistentWifi也适用于保持3G的活力。任何人都可以验证吗?

感谢

2 个答案:

答案 0 :(得分:1)

在足够长的用户不活动时间后,您的应用可能会被操作系统暂停。

在iOS 4.x下,某些类型的应用在显示屏被锁定时未被暂停(音乐播放器,VOIP等)。注册为VOIP类型应用的应用可能会被允许保持持续的网络连接在更长的时间内。但Apple可能会要求某个应用实际提供一些VOIP功能,以便在提交审核的任何应用中注册该类型。

答案 1 :(得分:0)

您是否需要执行某些活动来执行网络活动?从iOS5开始,我们注意到即使我们发送网络数据包(心跳计时器),iOS 5也会在锁定设备后阻止它。

需要注意的是,需要VoIP的服务会继续接听电话,并且当您的电话处于睡眠模式或锁定时,会发出通知。这意味着WiFi并非完全关闭。我不知道这是怎么发生的。

作为替代方案,您可以使用网络提供商的数据载体作为WiFi的替代方案,以防WiFi出现故障。使用UIRequiresPersistentWiFi,您只需通知iOS5您需要WiFi来运行您的应用程序,没有其他任何表示它是否保持您的屏幕开启或关闭。为了防止手机自动锁定,您可以使用disableTimer = YES标志代替电池充电。