근접 경고에 문제가 있습니다. 내 안드로이드 응용 프로그램에서 사용자가 일부 위치의 근접 경고를 사용/사용 중지 할 수있는 설정이 있습니다. 인접 경고를 사용하지 않도록 설정하면 모든 것이 잘 작동하고 알림을받지 못합니다.하지만 사용 중지하고 근접 경고를 다시 사용하면 다시 추가되며 위치에 도달하면 알림이 두 번 표시됩니다. 따라서 기본적으로 다시 활성화 할 때마다 새로운 근접 경고가 생성됩니다. 제거하고 다시 추가 한 후 근접 경고 발포
이
내가 근접 경고 제거하기 위해 사용하는 코드입니다 :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);
}
'PendingIntent.getBroadcast (this, id, intent, PendingIntent.FLAG_UPDATE_CURRENT) .cancel();'을 (를) 사용해 보셨나요? 취소를 추가하려면 "현재 활성화 된 PendingIntent를 취소해야합니다. PendingIntent를 소유 한 원래 응용 프로그램 만 취소 할 수 있습니다." – jnthnjns
'FLAG_UPDATE_CURRENT'는 기존의'PendingIntent'를 리턴하고'cancel()'은 이름대로 그것을 할 것입니다. – jnthnjns