在长时间的设备不活动后建立Android网络连接

时间:2012-04-14 16:14:29

标签: android android-networking user-inactivity

我的申请将短信'转发到电子邮件地址。一个大问题是当天的第一条消息。设备(Attrix设置为最大电池节省模式)处于深度睡眠状态。短信是正常接收的,但是在我用手唤醒手机之前没有网络/数据连接,这是非常不优雅的。

我想请求/强制/欺骗Android唤醒其网络,并允许连接。我有一个CONNECTIVITY_CHANGE监听器,因此应用程序可以检测到这种情况何时异步发生。

目前,HttpClient.execute()表示“拒绝连接http://xxx.yyy.com”。收到SMS后立即调用此方法。这是在没有任何isConnected()检查的情况下尝试的,它们会说“false”。我希望这个请求会激起网络唤醒。

我也尝试过(注意 - 没有使用此方法的经验)

connectivityManager.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,“enableHIPRI”);

但代码只是...停止......那里。没有错误,异常,日志,它只是停止。我甚至无法检查返回值。

我没有尝试过唤醒锁,因为它们似乎是关于唤醒CPU(CPU似乎没问题)和屏幕(不关心)。

在我的应用程序的早期版本中,我采用了不同的路线。我有一个TimerTask每5分钟尝试一次,直到消息发送成功(即Javax Mail transport.send()不抛出MessagingException)。它完全忽略了有关当前网络状态的任何信息。这看起来非常可靠。但这是在黑暗中投掷飞镖,我相信它可以得到改善。

谢谢!

PVS

0 个答案:

没有答案