我希望我的应用使用接近警报。我想出了如何做到这一点,警报按预期工作,但有一个问题 - 在我设置接近警报后,GPS 图标立即出现在状态栏中并保持在那里,直到我重新启动设备(或关闭 GPS,但它再次出现一旦我重新打开 GPS)。
即使我删除了警报,该图标也会保留在那里(它不再被触发,因此删除似乎有效)。我的第一个想法是一旦它得到位置修复它就会被删除,但我错了。
这是在我运行 vanilla 4.1.2 Jelly Bean 的 Nexus S 上复制的(来自 Google 的闪存工厂图像,甚至没有根)和 4.1.2 模拟器。
我还注意到它似乎不影响电池,设备正常进入睡眠模式。
以下是相关代码:
public void set(Context context) {
LocationManager locationManager=(LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
PendingIntent pendingIntent=PendingIntent.getBroadcast(context, 0, prepareIntent(context), PendingIntent.FLAG_CANCEL_CURRENT);
double lat=getLocation().getGeoPoint().getLatitudeE6()/1e6;
double lng=getLocation().getGeoPoint().getLongitudeE6()/1e6;
locationManager.addProximityAlert(lat, lng, radius, -1, pendingIntent);
}
public void unset(Context context) {
LocationManager locationManager=(LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
PendingIntent pendingIntent=PendingIntent.getBroadcast(context, 0, prepareIntent(context), PendingIntent.FLAG_CANCEL_CURRENT);
locationManager.removeProximityAlert(pendingIntent);
}
可能是什么问题呢?我该如何解决?
更新:我进行了一个小实验(设置接近警报的 50 分钟睡眠模式),但结果相当混乱:
似乎该图标存在,但 GPS 并非一直处于开启状态。
有人可以澄清这种情况吗?