aelsheikh
aelsheikh

Reputation: 2328

Proximity Alert Intent not putting or returning extras

What I'm doing is adding different proximity alerts with a unique ID as an extra and it's not working -

        for (int i = 0; i < latArray.size(); i++) 
    {   

        Bundle extra = new Bundle();
        extra.putInt("UID", i);
        Intent intent = new Intent(IntentToFire);  
        intent.putExtra("Blob", extra);
        PendingIntent proximityIntent = PendingIntent.getBroadcast(this,-1 , intent, 0);
        LocationManager locationManager = 

        Log.i("Picture:","Location img:"+GetLocation.imgArray.get(i));
        Log.i("Potatoo:", "Lat :"+latArray.get(i)+" Lng :"+lngArray.get(i));
        locationManager.addProximityAlert(Double.valueOf(latArray.get(i)), Double.valueOf(lngArray.get(i)), radius,expiration,proximityIntent);
    }

And then on the broadcast receiver I'm putting this code -

flag = intent.getBundleExtra("blob").getInt("UID");

Every time I got to print flag, I just get an error. An ideas?

Upvotes: 1

Views: 437

Answers (1)

Siarhei
Siarhei

Reputation: 194

Try to use the FLAG_UPDATE_CURRENT:

PendingIntent.getBroadcast(this,-1 , intent, PendingIntent.FLAG_UPDATE_CURRENT);

I found it easiest is to encode data in the data-uri with proximity alerts on the Intent that is included in the pending intent, e.x.:

geo:<lat>,<lon>?id=<your id>

You can use your own protocol part though (geo is used by google maps AFAIK). No caching problems for me (seems you get a cached/old/wrong PendingIntent).

Upvotes: 4

Related Questions