获取GPS坐标后发送消息

时间:2014-02-21 19:46:40

标签: android gps sms

我做了一个通过短信发送GPS坐标的应用程序。

因此,当您点击按钮时,它会尝试更新位置,但由于GPS坐标更新需要10-15秒,它将跳转到获取lastknowLocation并发送短信。

-lastKnowLocation已过时或0.0,0.0。

如何延迟发送短信,直到它获得新的GPS坐标?

1 个答案:

答案 0 :(得分:0)

您可以使用BroadCastReceiver接收新的GPS地点:BroadcastReceiver for location。您可以将requestLocationUpdates版本与PendingIntent参数一起使用,即使您的应用被杀,此方法也可以从文档中接收新坐标:

  

此方法更适用于后台用例   用于接收位置更新,即使应用程序已被杀死   系统。为此,请使用PendingIntent进行启动   服务。对于前台用例,LocationListener版本   建议使用方法,请参阅requestLocationUpdates(LocationRequest,   LocationListener的)。

在广播onReceive中,我会触发一个使用wakelock的IntentService:https://github.com/commonsguy/cwac-wakeful。这是因为广播接收者处理应该总是尽可能短,它总是更好地启动服务 - 即。 IntentService,并且为了防止android在处理广播后杀死你的应用和服务(android允许这样做 - 但主要是如果你的应用程序在触发pendingintent之前被杀死)你使用wakelock。在IntentService内部,您可以安全地发送电子邮件。您可以在应用程序的sharedpreferences中保存短信息。

所有这些复杂情况是因为用户可以点击按钮,按下主页按钮,你的应用程序实际上可能会被杀死。