android 上如何判断是否已获取GPS位置?
假设我有一个按钮,仅当系统知道确切的用户位置时才会调用另一个活动。我创建了一个对话框,要求用户在禁用 GPS 的情况下打开它,但是当用户启用 GPS 并再次按下按钮时,我可能还没有确切的位置。谁能帮我解决这个问题吗?
Let's say I have a button which calls another activity only if the system knows the EXACT user's location. I made a dialog to ask the user to turn on GPS if it's disabled, but when the user enables GPS and pushes the button again, I will probably not have the exact location yet. Can anyone help me with this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要创建一个LocationListener,并等待回调。 api docs 对此进行了很好的描述:
You need to create a LocationListener, and wait for the callback. It is pretty well described in the api docs:
您可以监听 GpsStatus 事件,以确保用户确实启用了 GPS (GPS_EVENT_STARTED),并在 GPS 获得定位时收到通知 (GPS_EVENT_FIRST_FIX)。
You can listen for GpsStatus events, to make sure that user actually enabled GPS (GPS_EVENT_STARTED), and to be notified when GPS gets position fix (GPS_EVENT_FIRST_FIX).
如果您不知道坐标,最好的方法是显示
ProgressDialog
在检索位置时,获取位置后,关闭 ProgressDialog 并启动您的活动。If you don't know coordinates, the best way is to display a
ProgressDialog
while retrieving a location and, when you got it, dismiss ProgressDialog and launch your activity.