我有一个应用程序在服务中管理其位置管理器和位置监听器。
我的位置监听器也是一项新服务。 当某些参数匹配位置更新或计时器匹配时,我将位置提供程序从gps更改为被动或从被动更改为gps。
从被动到gps工作正常,但从gps到被动没有。
这是我更改提供商的代码
public void changeGPSProvider(String provider) {
Log.i("ced", "Change Provider: " + provider);
if(provider.equals(LocationManager.GPS_PROVIDER) && this.locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
this.locationManager.requestLocationUpdates(provider, 5, 1, this.locationListener);
} else {
this.locationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 5, 1, this.locationListener);
}
}
控制台打印:
02-05 11:05:45.063:I / GCoreUlr(1049):已成功插入位置 02-05 11:05:45.063:I / GCoreUlr(1049):没有打电话 LocationReportingService,hasMoved:false,经过的millis:978046, 要求:电话02-05 11:05:46.865:I / ced(13235):变更提供者: 被动
你知道为什么吗?我只是看到GPS信号始终在我的设备上运行。 谢谢。