locationManager.requestSingleUpdate不发送更新

时间:2018-07-19 12:45:03

标签: android geolocation

我在Android 5.0.2设备上的某些地理位置代码有问题。该代码要求进行一次更新,但从未得到更新。从未调用singleUpdateReceiver

有问题的代码(摘要):

Criteria criteria;
PendingIntent singleUpdatePI;

singleUpdatePI = PendingIntent.getBroadcast(
    locationService, 0,
    new Intent(SINGLE_LOCATION_UPDATE_ACTION),
    PendingIntent.FLAG_CANCEL_CURRENT
);
registerReceiver(
    singleUpdateReceiver, 
    new IntentFilter(SINGLE_LOCATION_UPDATE_ACTION)
);
...
criteria = new Criteria();
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setSpeedRequired(true);
criteria.setCostAllowed(true);
...
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
locationManager.requestSingleUpdate(criteria, singleUpdatePI);

为什么会这样?在Android 7模拟器上,代码可以正常工作,并收到更新。

因为从未调用过singleUpdateReceiver,所以我的应用程序永远不会退出固定模式。

更新:

  • 在Android 5.0.1设备上不起作用
  • 在Android 5.1模拟器上不起作用
  • 可以在Android 6模拟器上运行
  • 可以在Android 7模拟器上运行

文档说,自API级别9起

0 个答案:

没有答案