Note that there are some explanatory texts on larger screens.

plurals
  1. POChange Class After Notification Is Clicked Android
    primarykey
    data
    text
    <p>I am trying to change my class to to go to Login.java I have tried numerous solutions but can't seem to get it. I have a PromximityAlert set-up to check location and after that location is confirmed it will display the notification and when that notification is clicked, it will initiate the Login class. </p> <p>Here is my code:</p> <pre><code>public class ProxAlertActivity extends Activity { private static final long MINIMUM_DISTANCECHANGE_FOR_UPDATE = 1; // in Meters private static final long MINIMUM_TIME_BETWEEN_UPDATE = 1000; // in Milliseconds private static final long POINT_RADIUS = 1000; // in Meters private static final long PROX_ALERT_EXPIRATION = -1; private static final String POINT_LATITUDE_KEY = "POINT_LATITUDE_KEY"; private static final String POINT_LONGITUDE_KEY = "POINT_LONGITUDE_KEY"; private static final String PROX_ALERT_INTENT = "com.example.mysqltest.ProximityAlert"; private static final NumberFormat nf = new DecimalFormat("##.########"); private LocationManager locationManager; private EditText latitudeEditText; private EditText longitudeEditText; private Button findCoordinatesButton; private Button savePointButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, MINIMUM_TIME_BETWEEN_UPDATE, MINIMUM_DISTANCECHANGE_FOR_UPDATE, new MyLocationListener() ); latitudeEditText = (EditText) findViewById(R.id.point_latitude); longitudeEditText = (EditText) findViewById(R.id.point_longitude); findCoordinatesButton = (Button) findViewById(R.id.find_coordinates_button); savePointButton = (Button) findViewById(R.id.save_point_button); findCoordinatesButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { populateCoordinatesFromLastKnownLocation(); } }); savePointButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { saveProximityAlertPoint(); } }); } private void saveProximityAlertPoint() { Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location==null) { Toast.makeText(this, "No last known location. Aborting...", Toast.LENGTH_LONG).show(); return; } saveCoordinatesInPreferences((float)location.getLatitude(), (float)location.getLongitude()); addProximityAlert(location.getLatitude(), location.getLongitude()); } private void addProximityAlert(double latitude, double longitude) { Intent intent = new Intent(PROX_ALERT_INTENT); PendingIntent proximityIntent = PendingIntent.getBroadcast(this, 0, intent, 0); locationManager.addProximityAlert( 41.69519672, // the latitude of the central point of the alert region -87.80026184, // 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 ); IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT); registerReceiver(new ProximityIntentReceiver(), filter); } private void populateCoordinatesFromLastKnownLocation() { Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location!=null) { latitudeEditText.setText(nf.format(location.getLatitude())); longitudeEditText.setText(nf.format(location.getLongitude())); } } private void saveCoordinatesInPreferences(float latitude, float longitude) { SharedPreferences prefs = this.getSharedPreferences(getClass().getSimpleName(), Context.MODE_PRIVATE); SharedPreferences.Editor prefsEditor = prefs.edit(); prefsEditor.putFloat(POINT_LATITUDE_KEY, latitude); prefsEditor.putFloat(POINT_LONGITUDE_KEY, longitude); prefsEditor.commit(); } private Location retrievelocationFromPreferences() { SharedPreferences prefs = this.getSharedPreferences(getClass().getSimpleName(), Context.MODE_PRIVATE); Location location = new Location("POINT_LOCATION"); location.setLatitude(prefs.getFloat(POINT_LATITUDE_KEY, 0)); location.setLongitude(prefs.getFloat(POINT_LONGITUDE_KEY, 0)); return location; } public class MyLocationListener implements LocationListener { public void onLocationChanged(Location location) { Location pointLocation = retrievelocationFromPreferences(); float distance = location.distanceTo(pointLocation); Toast.makeText(ProxAlertActivity.this, "Distance from Point:"+distance, Toast.LENGTH_LONG).show(); } public void onStatusChanged(String s, int i, Bundle b) { } public void onProviderDisabled(String s) { } public void onProviderEnabled(String s) { } } } 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, intent, 0); Notification notification = createNotification(); notification.setLatestEventInfo(context, "Proximity Alert!", "You are near your point of interest.", pendingIntent); notificationManager.notify(NOTIFICATION_ID, notification); } private Notification createNotification() { Notification notification = new Notification(); notification.icon = R.drawable.ic_menu_notifications; notification.when = System.currentTimeMillis(); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.flags |= Notification.FLAG_SHOW_LIGHTS; notification.defaults |= Notification.DEFAULT_VIBRATE; notification.defaults |= Notification.DEFAULT_LIGHTS; notification.ledARGB = Color.WHITE; notification.ledOnMS = 1500; notification.ledOffMS = 1500; return notification; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload