android - 如何在没有 'onLocationChange' 方法的情况下知道 GPS 位置

标签 android gps

我想通过单击一个按钮发送短信,并在短信中发送位置信息。我试过:

 location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

但第一次显示为空,因为未找到已知位置。 因此,我必须等待触发 LocationListener 的“onLocationChange”,但我不想这样。

请告诉我一些其他方式,以便我可以一次获得位置。 谢谢。

最佳答案

第一次获取 GPS 坐标(如果 GPS 服务未运行)可能是一个耗时的过程,因为 GPS 需要进行大量初始化。触发第一个 onLocationChange 是 Android 的 GPS 说:“我知道我现在在哪里”的一种方式。因此,您可能必须想出一种方法来处理 onLocationChange。

按需使用 SMS/GPS API 的方式是让 GPS 服务持续运行。你调查过/试过了吗?您也可以在 SMS 进程中等待,直到 GPS 位置可用,直到发生一些合理长度的超时事件,然后发送 SMS。由于您的 GPS 已初始化,后续请求应该会更快。在任何情况下,您都不能指望 GPS 服务提供的实时纬度/经度。

这里有一篇关于 mobile GPS 的精彩文章.它很笼统,但通读它会揭示为什么您不能简单地“按一下按钮”获取 GPS 读数的原因。

关于android - 如何在没有 'onLocationChange' 方法的情况下知道 GPS 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5233264/

相关文章:

android - 如何通过 latlng 获得两点之间的距离?

iPhone SDK : Do I need to ask user for permissions to use GPS?

android - Titanium:缺少 toImage() 转换的清晰度(Android 和 iOS)

java - 指定有效的唤醒锁定级别

ios - 如何从照片中获取 GPS 数据

php - 如何计算两个 gps 坐标之间的距离(不是位移)

android - 我需要在未插入计算机时调试我的 Android 应用程序

java - SetContentView 不起作用

java - 在 Android 中异步执行方法的最佳方式(紧凑且正确)

android - 当 Viewpager 有任何其他布局作为其兄弟时,它不可见