package dk.thoerup.friendradar; import java.util.List; import android.app.Activity; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.net.UrlQuerySanitizer.ValueSanitizer; import android.os.Bundle; import android.telephony.TelephonyManager; import android.util.Log; public class RadarActivity extends Activity implements LocationListener { LocationManager locManager; SensorManager sensorManager; String deviceId; RadarView radar; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); radar = (RadarView) findViewById(R.id.radar); locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); TelephonyManager tlf = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); deviceId = tlf.getDeviceId(); //get IMEI number } @Override protected void onResume() { super.onResume(); if (locManager.isProviderEnabled("gps")) { locManager.requestLocationUpdates("gps", 0, 0, this); } else { // ToDo: alert the user about missing gps provider } List orientationSensors = sensorManager.getSensorList(Sensor.TYPE_ORIENTATION); Log.e("sensors1", "sensor count" + orientationSensors.size()); if (orientationSensors.size() > 0) { sensorManager.registerListener(orientationListener, orientationSensors.get(0), SensorManager.SENSOR_DELAY_NORMAL); } else { // ToDo: alert the user about missing orientation sensor Log.e("sensor", "no orientation sensor"); } } @Override protected void onPause() { super.onPause(); locManager.removeUpdates(this); sensorManager.unregisterListener(orientationListener); } @Override public void onLocationChanged(Location location) { radar.setCurrentLocation(location); } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } SensorEventListener orientationListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { radar.setHeading( (int)event.values[0]); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }; }