在我的应用中,我使用FusedLocationProviderClient
每次用mFusedLocationClient.getLastLocation().addOnCompleteListener()
进入应用时获取用户位置。但有时结果为空,我在清单中使用<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
。如何我得到用户位置,即使它不是那么正确吗?因为应用程序的逻辑取决于该位置,我不需要在地图上显示它或像这样的smth,只需获取location.Thx提前
答案 0 :(得分:1)
不要使用getLastLocation()。如果当前没有位置,则始终有机会返回null。使用requestUpdates或requestSingleUpdates-当调用那些回调时,位置保证为非null。 getLastLocation()应仅用作优化以提高速度,不能依赖它。
答案 1 :(得分:-1)
请按照以下示例操作,确保您的应用可以正常工作。我最近使用过这段代码,它就像一个魅力。
只有你应该知道的是,为了实际工作的位置更新(获得真实的纬度和经度值),你应该启用&#34; google play services&#34;。可能有几种方法可以做到这一点但也许最简单的方法是打开&#34;设置&#34;在您的设备上,可能在某些安全&#34;或者&#34;权限&#34; (取决于你的Android发行版)找到&#34;谷歌播放服务&#34;并给予它所需的许可。
https://github.com/googlesamples/android-play-location/tree/master/LocationUpdates