近接アラートに問題があります。ユーザーが一部の場所の近接アラートを無効/有効にできる Android アプリケーションの設定があります。近接アラートを無効にすると、すべてがうまく機能し、通知されませんが、近接アラートを無効にして再度有効にすると、再び追加され、場所に到達したときに通知が 2 回届きます。したがって、基本的に、再度有効にするたびに、新しい近接アラートが作成されます。
これは、近接アラートを削除するために使用するコードです。
private void removeProximityAlert(int id) {
final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
Intent intent = new Intent(PROX_ALERT_INTENT + id);
PendingIntent proximityIntent = PendingIntent.getBroadcast(this, id, intent, PendingIntent.FLAG_CANCEL_CURRENT);
manager.removeProximityAlert(proximityIntent);
}
これは、近接アラートを追加するために使用するコードです。
private void addProximityAlert(double latitude, double longitude, int id, int radius, String title) {
final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
Intent intent = new Intent(PROX_ALERT_INTENT + id);
PendingIntent proximityIntent = PendingIntent.getBroadcast(this, id, intent, PendingIntent.FLAG_CANCEL_CURRENT);
manager.addProximityAlert(
latitude,
longitude,
radius,
-1,
proximityIntent
);
IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT + id);
registerReceiver(new ProximityIntentReceiver(id, title), filter);
}