Android location - 无论我如何实现,我都无法在通知栏中获得位置标记图标

Android location - no matter how I implement it, I never get the location marker icon in the notification bar

我正在尝试在 Android 应用程序中实现定位。 我首先尝试了从付费课程中学到的方法——扩展 LocationListener。我尝试使用 locationManager.getBestProvider 返回的 "best provider",但我发现它经常是 GPS,returns 0,0。 所以我把一切都改成了使用 3 个提供商:gps、网络和被动。我正在显示所有 3 个的所有 latLng 和精度。它通常是相同的,尽管 GPS returns 30% 的时间为 0,0。

然后我改变了使用 GoogleApiClient 的整个方法。实现了 GoogleApiClient.ConnectionCallbacks、GoogleApiClient.OnConnectionFailedListener 和 LocationListener。

此处的值与我通过第一种方法获得的值有些相似。

但是无论我做什么,我都无法在通知栏中看到位置标记图标。喜欢 google 地图或任何叫车应用程序。 为什么是这样?

此外,在这两种情况下,应用程序都会出现在设置的 "Recent location requests" 中; LocationListener 的应用程序名称,以及第二种方法的 Google App/Google 位置历史记录。

我正在 Nexus 4(库存 5.1.1)和 5(库存 6.0.1)设备上进行测试。权限在清单中,并为 API 级别 23 添加了必要的权限检查。

Mainactivity 类 可以在这里找到: using Google APIusing LocationListener 感谢您的帮助!

只有在方法

上使用LocationManager.GPS_PROVIDER时才会出现位置标记通知图标

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, this);

如果您使用LocationManager.NETWORK_PROVIDER,状态栏中不会有图标

编辑:

还要检查您在 Settings->Location->Mode 中的定位模式,将其设置为高