1

アプリで近接アラートを使用したい。その方法はわかりました。アラートは期待どおりに機能しますが、問題があります。近接アラートを設定した直後に、GPS アイコンがステータス バーに表示され、デバイスを再起動するまでそこに留まります (または GPS をオフにすると、再び表示されます)。 GPSを再びオンにするとすぐに)。

アラートを削除してもアイコンはそこに残ります(アラートはもう発生しないため、削除は機能しているようです)。私の最初の考えは、場所が修正されたらすぐに削除されるだろうということでしたが、私は間違っていました.

これは、バニラ 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