我正在尝试在Android应用程序中实现定位。我首先尝试了从付费课程中学到的方法——扩展LocationListener。我尝试使用locationManager.getBestProvider返回的"最佳提供商",但我发现它经常是GPS,返回0,0。所以我把所有的东西都改为使用三个提供商:gps,网络和被动。我显示了所有三个方面的所有latLng和准确性。它通常是一样的,尽管GPS返回30%的时间0,0。
然后我改变了使用GoogleApiClient的整个方法。实现了GoogleApiClient.ConnectionCallbacks、GoogleApiCClient.OnConnectionFailedListener和LocationListener。
这里的值与我使用第一种方法得到的值有些相似。
但无论我做什么,我都不会在通知栏中看到位置标记图标。比如谷歌地图或任何叫车应用程序。为什么会这样?
此外,在这两种情况下,应用程序都会出现在设置中的"最近的位置请求"中;LocationListener的应用程序名称以及第二种方法的Google App/Google位置历史。
我正在测试Nexus 4(库存5.1.1)和5(库存6.0.1)设备。权限在清单中,并为API 23级添加了必要的权限检查。
Mainactivity类可以在这里找到:使用Google API并使用LocationListener谢谢你的帮助!
只有在方法上使用LocationManager.GPS_PROVIDER
时,位置标记通知图标才会出现
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,5000,1,this);
如果您使用LocationManager.NETWORK_PROVIDER
,则状态栏中将不会有图标
编辑:
检查您在Settings->Location->Mode
中的定位模式并将其设置为高