хорошо, чтобы добавить ProximityAlert, вам нужен PendingIntent, PeindingIntent можно получить с помощью PendingIntent.getBroadcast (aContext, aRequestCode, anIntent, 0);Теперь в третий параметр anIntent вы можете поместить любые данные, например, объект Location, название города, полученное с помощью местоположения,
. Я делаю это так:
private static final float DEFAULT_PROXIMITY = 1000f;
int requestCode = 0;
for (Location p : locationList) {
Double _lat = p.getLatitude();
Double _lon = p.getLongitude();
float radious = DEFAULT_PROXIMITY;
long expiration = -1;
Intent intent = new Intent(PROXIMITY_ALERT_ACTION_FIRED);
intent.putExtra( "location-lat" , p.getLatitude());
intent.putExtra( "location-lon" , p.getLongitude());
PendingIntent proximityIntent = PendingIntent.getBroadcast(this, requestCode, intent, 0);
locationManager.addProximityAlert(_lat, _lon, radious, expiration, proximityIntent);
requestCode++;
}
теперь, когда вы получаете широковещательное сообщение, вы должны получить информацию о местоположении из переданного намерения, что-то вроде этого;
@Override
public void onReceive(Context context, Intent intent) {
Boolean entering = intent.getBooleanExtra(key, false);
if(entering){
long lat = intent.getLongExtra("location-lat", -1);
long lon = intent.getLongExtra("location-lon", -1);
log.info("", "entering: " + lat + lon);
}else{
long lat = intent.getLongExtra("location-lat", -1);
long lon = intent.getLongExtra("location-lon", -1);
log.info("", "exiting: " + lat + lon);
}
}
cheers