OnLocationChanged未在某些设备

时间:2016-09-18 16:18:13

标签: android gps location android-location locationlistener

我知道有很多“相似”的问题,但没有一个提供有用的答案。

我正在尝试收听来自网络和GPS的位置更新。 LocationListener初始化非常标准:

locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 15000, 0, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 15000, 0, locationListener);

我在两台设备上测试了它,三星Galaxy S4(SM-N910F)和LG G Flex 2(H950)。在第一个设备上onLocationChanged按预期调用(仅来自“网络”提供者),而事件永远不会在第二个设备上触发。

两款设备都设置为“高精度”模式。我在Wi-Fi以及4G LTE连接上尝试了第二个设备。由于我使用谷歌地图API,我可以清楚地看到用户标记在地图上移动,但事件永远不会被调用。

知道为什么永远不会在第二台设备上调用onLocationUpdated

此外,我读到GPS需要很长时间才能修复。请求GPS提供商提供更新是否有任何意义?

谢谢!

1 个答案:

答案 0 :(得分:1)

我建议您开始使用Google Play位置API。

  

Google Play服务位置API优于Android   框架位置API(android.location)作为添加位置的一种方式   了解您的应用。如果您目前正在使用Android   框架位置API,强烈建议您切换到   Google Play尽快提供服务位置API。

https://developer.android.com/training/location/index.html