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

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

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

-lastKnowLocation 已过时或 0.0、0.0。

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

【问题讨论】:

    标签: android gps sms


    【解决方案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 中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2017-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多