获取 GPS 坐标后发送消息

Posted

技术标签:

【中文标题】获取 GPS 坐标后发送消息【英文标题】:Sending message after acquiring GPS Coordinates 【发布时间】:2014-03-23 12:32:11 【问题描述】:

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

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

-lastKnowLocation 已过时或 0.0、0.0。

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

【问题讨论】:

【参考方案1】:

您可以使用 BroadCastReceiver 接收您的新 GPS 位置:BroadcastReceiver for location。您将使用带有 PendingIntent 参数的requestLocationUpdates 版本,即使您的应用程序被杀死,此方法也允许接收新坐标,来自文档:

此方法适用于后台用例,更具体地说 用于接收位置更新,即使应用程序已被 系统。为此,请使用 PendingIntent 来启动 服务。对于前台用例,LocationListener 版本的 推荐方法,见 requestLocationUpdates(LocationRequest, 位置监听器)。

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

所有这些复杂性都是因为用户可以在单击按钮后按主页按钮,您的应用实际上可能会被杀死。

【讨论】:

以上是关于获取 GPS 坐标后发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Android:获取 GPS 坐标并将其发送到服务器的服务

获取/发送短信时如何获取 GPS 坐标? [复制]

停止发送 GPS 坐标 Android

winform用SendMessage怎么发送一个鼠标消息,指定鼠标在某个窗口(32,32)处按下,指定坐标在sendmess

如何将 GPS 坐标发送到网络服务器?

获取 GPS 坐标并保存为文本文件