iPhone 3G连接启用

时间:2009-04-28 22:35:44

标签: iphone

我的应用程序需要Internet连接。似乎如果我让我的iPhone闲置一段时间它会关闭其3G连接。一旦我将其唤醒(滑动解锁)并运行我的应用程序,它就无法连接到Internet。我必须首先运行Youtube或Safari,然后它获得Internet连接,然后我必须关闭Youtube / Safari然后我可以使用我的应用程序登录我的服务。

请您告诉我如何从我的应用程序激活3G连接(以便我可以在从空闲状态唤醒后直接使用我的应用程序,而且我不必运行其他应用程序,如Youtube / Safari?< / p>

感谢。

5 个答案:

答案 0 :(得分:2)

显然有另一个更好的解决方案,但您可以加载一个空白页面:

[NSString stringWithContentsOfUrl ... ]

如果有必要,将建立连接。

答案 1 :(得分:2)

要禁用空闲计时器,请查看UIApplication类的idleTimerDisabled property

来自Apple:

  

此属性的默认值为   没有。当大多数应用程序没有   触摸作为用户输入的简短   期间,系统放置设备   进入“睡眠”状态的屏幕   变暗。这是为了达到目的   节约能源。然而,   没有用户的应用程序   输入除了   加速度计游戏,例如,可以,   通过将此属性设置为YES,   禁用“空闲计时器”以避免   系统睡眠。

     

重要提示:您应该设置此项   财产只在必要时才应该   一定要把它重置为NO   不再存在。最   应用程序应该让系统   闲置时关闭屏幕   计时器过去了。这包括音频   应用。适当使用   音频会话服务,播放和   录音时不间断地进行   屏幕关闭。唯一的   应该禁用的应用程序   idle timer是映射应用程序,   游戏或类似程序   零星的用户互动。

答案 2 :(得分:1)

只有NSURLConnection(以及在其上分层的任何API)在从睡眠状态唤醒后重新初始化数据连接。要重新初始化数据连接,请为非本地地址创建一个虚拟NSURLConnection并立即取消它;然后socket API将按预期工作。

开发者论坛上有一篇帖子,苹果开发者详细解释了这一点(但目前我找不到)

答案 3 :(得分:0)

您确定正确建立连接吗?我的应用程序使用套接字执行相同操作,并且在设备休眠后重新建立连接没有问题。在SystemConfiguration框架中使用Reachability API可在覆盖可用时获得通知,然后再尝试连接。请注意,设备唤醒以获得Internet连接后,必须经过一段时间 - 从几秒到几分钟 - 所以要耐心等待。

Apple提供了Reachability示例,还搜索了stackoverflow的可访问性,您将找到更多提示如何实现它。

答案 4 :(得分:0)

实际上,在启动应用程序之间更改手机上的网络设置时会出现同样的问题。例如,假设您在启动应用程序时使用WIFI连接。然后关闭应用程序并关闭WIFI,以便设备使用运营商的网络。当您重新启动应用程序时,套接字将无法连接,除非您使用虚拟NSURLConnection(或在启动应用程序之前启动浏览器)进行操作。

此外,在初始化之后立即取消NSURLConnection(使用connectionWithRequest或initWithRequest)对我来说不起作用。要么取消请求,要么在取消请求之前等待一段时间(例如使用performSelector:withObject:afterDelay :)。