我正在开发一个应用程序,在服务中的6分钟和6分钟内整天获得手机的位置,它工作正常,但有时OnLocationChanged网络提供者监听器的方法停止被调用,我不知道为什么.
它由于某种原因停止被调用,但是当我手动启用或禁用提供程序onProviderEnabled并且onProviderDisabled被调用时,提供程序已启用且Lister正在工作.
它恰好发生NETWORK_PROVIDER,GPS_PROVIDER效果很好.
监听器:
LocationListener locationListenerGPS = new LocationListener() {
// @Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO locationListenerGPS onStatusChanged
Log.d(TAG, "Provedor trocado");
}
// @Override
public void onProviderEnabled(String provider) {
Log.w(TAG, "PROVEDOR " + provider + " HABILITADO!");
}
// @Override
public void onProviderDisabled(String provider) {
Log.w(TAG, "PROVEDOR " + provider + " DESABILITADO!");
}
// @Override
public void onLocationChanged(Location location) {
longitudeGPS = …Run Code Online (Sandbox Code Playgroud) 我有一个经过充分测试的应用程序,它使用GPS_PROVIDER和NETWORK_PROVIDER使用相同的LocationListener.
LocationManager 报告gps,网络和被动位置提供程序可用并启用.
我最近将我的Galaxy Nexus升级到4.1.1,现在NETWORK_PROVIDER它没有提供任何位置更改.使用运行4.0.4的Galaxy S III进行测试就像我习惯的那样,即使WiFi关闭,网络位置更新也会通过.当WiFi关闭时,我得到了手机信号塔的位置.
在这里与同事交谈,我不能排除某种巧合的硬件故障或某些我没有找到的默认设置更改.我在整个设置中进行了双重检查,看起来一切都已正确设置.
WiFi已打开,Cell网络已开启,GPS已开启,网络服务均已启用.我的办公桌上没有GPS信号,所以当网络位置无法提供结果时很容易注意到.
还有其他人遇到与Verizon Galaxy Nexus + 4.1.1或4.1.1以及任何手机类似的问题吗?
作为额外的皱纹,谷歌地图找到我的位置,但我PASSIVE_PROVIDER也没有生成位置.
我的位置监听器正常工作,收集数据没有任何问题.但有时它不会收集任何数据.此时我必须关闭并重新启动我的位置提供程序.重新启动修复了问题,但是,这可能不是用户期望做的最好的事情.
当我使用GPS作为提供者时,没有问题.
位置监听器在服务中工作.我无法理解这个问题.它是关于Android还是我的代码?
提前致谢.