1

我希望我的应用使用接近警报。我想出了如何做到这一点,警报按预期工作,但有一个问题 - 在我设置接近警报后,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 并非一直处于开启状态。

有人可以澄清这种情况吗?

4

0 回答 0