package app.test;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
class ProximityReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent intent) {
if(intent.getData() != null)
Log.v(TAG, intent.getData().toString());
Bundle extras = intent.getExtras();
if(extras != null) {
Log.v("", "Message: " + extras.getString("message"));
Log.v("", "Entering? " + extras.getBoolean(LocationManager.KEY_PROXIMITY_ENTERING));
}
}
}
public class ProximityActivity extends Activity {
private final String PROX_ALERT = "app.test.PROXIMITY_ALERT";
private ProximityReceiver proxReceiver = null;
private LocationManager locMgr = null;
PendingIntent pIntent1 = null;
PendingIntent pIntent2 = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
double lat = 31.334954;
double lon = -80.5625;
float radius = 5.0f * 1609.0f;
String geo = "geo:"+lat+","+lon;
Intent intent = new Intent(PROX_ALERT, Uri.parse(geo));
intent.putExtra("message", "Jacksonville, FL");
pIntent1 = PendingIntent.getBroadcast(getApplicationContext(), 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
locMgr = (LocationManager) this.getSystemService(LOCATION_SERVICE);
locMgr.addProximityAlert(lat, lon, radius, 2000L, pIntent1);
lat = 38.54;
lon = -80.38;
geo = "geo:"+lat+","+lon;
intent = new Intent(PROX_ALERT, Uri.parse(geo));
intent.putExtra("message", "Orlando, FL");
pIntent2 = PendingIntent.getBroadcast(getApplicationContext(), 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
locMgr.addProximityAlert(lat, lon, radius, 60000L, pIntent2);
proxReceiver = new ProximityReceiver();
IntentFilter iFilter = new IntentFilter(PROX_ALERT);
iFilter.addDataScheme("geo");
registerReceiver(proxReceiver, iFilter);
}
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(proxReceiver);
locMgr.removeProximityAlert(pIntent1);
locMgr.removeProximityAlert(pIntent2);
}
}
//main.xml
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>