我正在创建一个小应用,当用户点击按钮时,应用会获取用户位置并打开Google地图。
问题是,如果用户手机没有启用GPS,则启用它并再次点击该按钮,此方法将返回null
:
location = service.getLastKnownLocation(provider);
当我等待启用GPS然后单击按钮后,该方法将正常工作并返回位置。
我该如何解决这个问题?
答案 0 :(得分:1)
为什么需要在启用GPS后等待一段时间才能工作?
这是因为当你启用GPS时,它会修复卫星的位置,并根据你能够获得位置。
答案 1 :(得分:0)
这显然是一种默认行为,当你停止GPS并再次启动时,启动和停止之间会有一个小的差距,此时,GPS将完成任务,获取卫星数据,之后它将为您提供地点。如果我们想要快速驾驶,那么我们必须从第一档开始,相同的GPS行为。
答案 2 :(得分:0)
正如上面提到的答案,设备将在一段时间后获得位置。如果您处于流程的中间位置,则可以显示ProgressSpinner
并轮询getLastKnownLocation()
x秒以获取位置。
答案 3 :(得分:0)
如果您没有使用GooglePlayServicesClient,请尝试使用此方法获取用户位置。
这是获得当前纬度的最快方法。
参考和代码使用以下链接。
http://developer.android.com/training/location/retrieve-current.html
我帮你了。