我正在开发一款GPS跟踪应用程序,可以在特定条件(时间,距离)内通过短信发送地理位置。
效果很好,但是当几分钟内没有GSM活动时(例如接收短信或电话),发送短信失败并显示SmsManager.RESULT_ERROR_NO_SERVICE
。这不是信号不良的问题,这甚至发生在信号非常强的区域。
对我来说,似乎我的手机(Android 2.3和4.0.4)在屏幕关闭几分钟后将发送硬件置于某种睡眠模式,即使我打电话SmsManager.sendTextMessage
Android也没有唤醒他们。
很奇怪:当我收到(未接听的)电话或短信时,发送短信工作(如果发生某些错误,我会每2分钟重试一次)。解锁屏幕通常就足够了。
有解决方法吗?我可以告诉Android在发送短信之前唤醒GSM吗?
(我没有尝试PowerManager.PARTIAL_WAKE_LOCK
,因为CPU显然正在运行。)