我的申请将短信'转发到电子邮件地址。一个大问题是当天的第一条消息。设备(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