私のユースケース:
-たとえば、私のアプリには、サーバーから取得した 3 つの経度/緯度の場所があります。これらは、フェッチ間で変更される場合があります。- 3 つすべてに近接アラートを追加したいのですが、場所を再取得するときに、経度/緯度が変更された場合に備えて近接アラートを再作成したいと考えています。
locationmanager でメソッドを見て、いくつかの例を見つけましたが、「removeAll」メソッドがどこにも表示されず、それを行う方法も見つかりませんでした。毎回一意のIDを使用して、保留中の意図を作成し、警告し、各場所の受信者を登録する必要があることに対処します...
基本的に、すべての近接アラートに同じインテント/保留インテントを使用することを望んでいたので、後で削除を呼び出すときに、メソッドを 1 回呼び出すだけで、すべての近接アラートが次のコードのように削除されます。
任意のヒント?これは完全に不可能ですか?
//CREATE (i would use the same way to create intent for all my proximity alerts, and have one broadcastreciever that receives all for the intent with that ID):
Intent intent = new Intent(PROX_ALERT_INTENT_ID);
PendingIntent proximityIntent = PendingIntent.getBroadcast(activity.getApplicationContext(), 0, intent, 0);
lm.addProximityAlert(
latitude,
longitude,
POINT_RADIUS,
PROX_ALERT_EXPIRATION,
proximityIntent
);
//REMOVE:
Intent intent = new Intent(PROX_ALERT_INTENT_ID);
PendingIntent proximityIntent = PendingIntent.getBroadcast(activity.getApplicationContext(), 0, intent, PendingIntent.FLAG_NO_CREATE);
//i had hoped that this call would remove all alerts at once?
lm.removeProximityAlert(proximityIntent);