所以我有一个应用程序可以在许多设备上完美运行。问题出在Android 6的一部特定手机上。
我们的应用程序的位置仅在其他应用程序使用GPS时才有效。 例如,启动我们的应用程序,GPS图标就像GPS处于活动状态一样启动,但应用程序上的位置更新不会显示或刷新。然后,我们启动Google地图,然后我们的应用上的位置才开始刷新。只要我们关闭Google地图,我们的位置就会停止接收。
我实际上在Android 6的另一部手机上测试了该应用,没有任何问题。
我认为Google Play服务或新的权限架构可能存在某种问题。或者也许BroadcastReceiver接收位置更新。
关键信息:
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services-location:7.+'
compile 'com.google.android.gms:play-services-maps:7.+'
compile 'com.google.android.gms:play-services-gcm:7.+'
我的选项和测试用完了。
有什么想法吗?
谢谢,
修改
问题是在该版本的Android上,来自Location的getSpeed总是0.0,除非另一个应用程序正在使用该位置,然后我们获得包含速度的更新。
这听起来像个错误。为什么遗留应用程序无法在该位置获得速度?假设它是因为我们使用API 22。
另一方面,我们使用速度来过滤掉位置,并在手机静止时停止更新位置。这就是为什么我们没有看到位置更新。
我想我们必须计算自己的速度。