我知道有很多“相似”的问题,但没有一个提供有用的答案。
我正在尝试收听来自网络和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提供商提供更新是否有任何意义?
谢谢!
答案 0 :(得分:1)
我建议您开始使用Google Play位置API。
Google Play服务位置API优于Android 框架位置API(android.location)作为添加位置的一种方式 了解您的应用。如果您目前正在使用Android 框架位置API,强烈建议您切换到 Google Play尽快提供服务位置API。