0

What should i do to turn off the gps if location is not found at 1st instance..without location update being called

package mobile.sales;

import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;

public class test extends Activity 
{
     DataSource dataSource;
     Double lat=0.0,lng=0.0;
     String GPS_FILTER = "";
     Thread triggerService;
     LocationListener locationListener;
     LocationManager lm;
     private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1000; // in Meters
     private static final long MINIMUM_TIME_BETWEEN_UPDATES = 29*1000*60; // in Milliseconds
     protected LocationManager locationManager;
     boolean isRunning = true;
     NotificationManager notificationManager;
     PendingIntent contentIntent;
     Notification notification;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        turnGPSOn();
        LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        locationListener = new MyLocationListener();
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES, MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, locationListener);
    }

     @Override
     public void onDestroy() 
     {
         // TODO Auto-generated method stub
         locationManager.removeUpdates(locationListener);
         locationManager= null;
         turnGPSOnOff();  
         super.onDestroy();
         // removeGpsListener();
     }

     private class MyLocationListener implements LocationListener
     {
        public void onLocationChanged(Location location) 
         {
            lat=location.getLatitude();
            lng=location.getLongitude();
            turnGPSOnOff();
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            String currentDateandTime = sdf.format(new Date());     
            SimpleDateFormat sdft = new SimpleDateFormat("hh:mm:ss");
            String time=sdft.format(new Date());
            dataSource.insertIntoLocationDetails(""+lat,""+lng,currentDateandTime,""+time);
            Log.d("service","location Inserted");
         }

         public void onStatusChanged(String s, int i, Bundle b) {

         }

         public void onProviderDisabled(String s) {
         }

         public void onProviderEnabled(String s) {
         }
     }
     private void turnGPSOnOff(){
         Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
         intent.putExtra("enabled", false);
         sendBroadcast(intent);
     }
     private void turnGPSOn(){
            String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            if(!provider.contains("gps")){
                final Intent poke = new Intent();
                poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");
                poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
                poke.setData(Uri.parse("3"));
                sendBroadcast(poke);
            }
     }
}
Dipak Keshariya
  • 22,193
  • 18
  • 76
  • 128
Sumit
  • 928
  • 2
  • 15
  • 34

2 Answers2

0

You are calling the function when you are trying to DESTROY The activity itself. First find the Fix of GPS using GPSStatusListener

Use this code

Check Gps Status

Call your GpsTurnOff status in GPSStatusListener

Community
  • 1
  • 1
user996428
  • 96
  • 1
  • 7
  • Didnt get you what should i do ? – Sumit Sep 08 '12 at 07:33
  • What should i do to turn off the gps if location is not found at 1st instance..without location update being called – Sumit Sep 08 '12 at 07:36
  • @Sumit First use GPSStatusListener to find if your app got GPS Fix, If it's not getting GPS Fix after few seconds then call your function within GPSStatusListener. Kindly read the answer carefully in my mentioned example – user996428 Sep 08 '12 at 07:38
0

new Handler().postDelayed(new Runnable() { @Override public void run() { turnGPSOnOff(); } }, 2000*60); this will turnoff my gps after certain time

Sumit
  • 928
  • 2
  • 15
  • 34