detect if the user switched to NO in location services
detect if the user switched to NO in location services
I have a code which redirects to settings if GPS or network is not enabled.The problem is that I want to either programmatically enforce location service when the alert dialog detects that GPS is not enabled or detect the option user has selected in location services and then redirect back to the calling activity.Also I want the location to be checked every 10 seconds until the particular activity is on.please help me My GPS Checking method public void setGPSLocation GPSTracker gps new GPSTrackerFormBuilderActivity.this; check if GPS enabled ifgps.canGetLocation latitude_loc gps.getLatitude; longitude_loc gps.getLongitude; n is for new line Toast.makeTextgetApplicationContext, Your Location is - nLat: latitude nLong: longitude, Toast.LENGTH_LONG.show; else latitude_loc 0.00; longitude_loc 0.00; cant get location GPS or Network is not enabled Ask user to enable GPSnetwork in settings gps.showSettingsAlert; GPSTracker.class public class GPSTracker extends Service implements LocationListener private final Context mContext; flag for GPS status boolean isGPSEnabled false; flag for network status boolean isNetworkEnabled false; flag for GPS status boolean canGetLocation false; Location location; location double latitude; latitude double longitude; longitude The minimum distance to change Updates in meters private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES 10; 10 meters The minimum time between updates in milliseconds private static final long MIN_TIME_BW_UPDATES 1000 60 1; 1 minute Declaring a Location Manager protected LocationManager locationManager; public GPSTrackerContext context this.mContext context; getLocation; public Location getLocation try locationManager LocationManager mContext .getSystemServiceLOCATION_SERVICE; getting GPS status isGPSEnabled locationManager .isProviderEnabledLocationManager.GPS_PROVIDER; getting network status isNetworkEnabled locationManager .isProviderEnabledLocationManager.NETWORK_PROVIDER; if isGPSEnabled isNetworkEnabled no network provider is enabled else this.canGetLocation true; if isNetworkEnabled locationManager.requestLocationUpdates LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this; Log.dNetwork, Network; if locationManager null location locationManager .getLastKnownLocationLocationManager.NETWORK_PROVIDER; if location null latitude location.getLatitude; longitude location.getLongitude; if GPS Enabled get latlong using GPS Services if isGPSEnabled if location null locationManager.requestLocationUpdates LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this; Log.dGPS Enabled, GPS Enabled; if locationManager null location locationManager .getLastKnownLocationLocationManager.GPS_PROVIDER; if location null latitude location.getLatitude; longitude location.getLongitude; catch Exception e e.printStackTrace; return location; Stop using GPS listener Calling this function will stop using GPS in your app public void stopUsingGPS iflocationManager null locationManager.removeUpdatesGPSTracker.this; Function to get latitude public double getLatitude iflocation null latitude location.getLatitude; return latitude return latitude; Function to get longitude public double getLongitude iflocation null longitude location.getLongitude; return longitude return longitude; Function to check GPSwifi enabled return boolean public boolean canGetLocation return this.canGetLocation; Function to show settings alert dialog On pressing Settings button will lauch Settings Options public void showSettingsAlert AlertDialog.Builder alertDialog new AlertDialog.BuildermContext; Setting Dialog Title alertDialog.setTitleGPS settings; Setting Dialog Message alertDialog.setMessageGPS is not enabled. Please go to settings and switch on the location fetching service; On pressing Settings button alertDialog.setPositiveButtonSettings, new DialogInterface.OnClickListener public void onClickDialogInterface dialog,int which turnGPSOn; Intent intent new IntentSettings.ACTION_LOCATION_SOURCE_SETTINGS; mContext.startActivityintent; ; on pressing cancel button Showing Alert Message alertDialog.show; Override public void onLocationChangedLocation location TODO Auto-generated method stub Override public void onProviderDisabledString provider TODO Auto-generated method stub Override public void onProviderEnabledString provider TODO Auto-generated method stub Override public void onStatusChangedString provider, int status, Bundle extras TODO Auto-generated method stub Override public IBinder onBindIntent intent TODO Auto-generated method stub return null;
Комментарии
Отправить комментарий