Sto cercando di creare più avvisi di prossimità ma non riesco a farlo funzionare ...Un broadcastReceiver può catturare più trasmissioni?
Penso che il destinatario della trasmissione venga sovrascritto e quindi gestisca solo l'ultima trasmissione. Quindi se avessi due punti vicini da solo quello il cui intento è stato creato per ultimo genererà un avviso ...
Ho letto che dovrei usare i codici di richiesta ma non ho idea di come farlo ...
il mio metodo per impostare gli intenti pendenti e il ricevitore broadcast ...
private void addProximityAlert(double latitude, double longitude, String poiName, String intentfilter) {
Bundle extras = new Bundle();
extras.putString("name", poiName);
Intent intent = new Intent(PROX_ALERT_INTENT+poiName);
intent.putExtras(extras);
PendingIntent proximityIntent = PendingIntent.getBroadcast(MainMenu.this, requestCode, intent, 0);
locationManager.addProximityAlert(
latitude, // the latitude of the central point of the alert region
longitude, // the longitude of the central point of the alert region
POINT_RADIUS, // the radius of the central point of the alert region, in meters
PROX_ALERT_EXPIRATION, // time for this proximity alert, in milliseconds, or -1 to indicate no expiration
proximityIntent // will be used to generate an Intent to fire when entry to or exit from the alert region is detected
);
requestCode++;
IntentFilter filter = new IntentFilter(intentfilter);
registerReceiver(new ProximityIntentReceiver(), filter);
}
la mia classe broadcastreceiver
public class ProximityIntentReceiver extends BroadcastReceiver {
private static final int NOTIFICATION_ID = 1000;
@Override
public void onReceive(Context context, Intent intent) {
String key = LocationManager.KEY_PROXIMITY_ENTERING;
Boolean entering = intent.getBooleanExtra(key, false);
if (entering) {
Log.d(getClass().getSimpleName(), "entering");
}
else {
Log.d(getClass().getSimpleName(), "exiting");
}
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, null, 0);
Notification notification = createNotification();
notification.setLatestEventInfo(context,
"Proximity Alert!", "You are approaching: " +intent.getExtras().get("name"), pendingIntent);
//here-------------------------------------
notificationManager.notify(NOTIFICATION_ID, notification);
}
private Notification createNotification() {
Notification notification = new Notification();
notification.icon = R.drawable.androidmarker;
notification.when = System.currentTimeMillis();
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
notification.flags |= Notification.FLAG_INSISTENT;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.defaults |= Notification.DEFAULT_SOUND;
notification.ledARGB = Color.WHITE;
notification.ledOnMS = 300;
notification.ledOffMS = 1500;
return notification;
}
}
Potete aiutarmi per favore ??? Sono davvero bloccato con questo ...
Qualsiasi aiuto sarebbe molto apprezzato !!!
Giusto per farvi sapete tutti che ho pubblicato un aggiornamento sul mio codice originale che include un esempio completo su GitHub: http: //www.gauntface.co.uk/pages/blog/2010/12/28/how-to-multiple-proximity-alerts-in-android/ –
Come rimuovi il tuo avvisi? I miei continuano a crescere. :( – deucalion0
E 'passato un po' di tempo e non mi ricordo davvero cosa ho fatto scusate – mixkat