2012-09-08 4 views
0

Que dois-je faire pour désactiver le GPS si l'emplacement ne se trouve pas au 1er instance..without mise à jour de l'emplacement appeléGps dose se désactivent si l'emplacement ne se trouve pas

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); 
      } 
    } 
} 
+0

Quelqu'un peut-il me guider s'il vous plaît ce que je fais mal – Sumit

Répondre

0

Vous appelez la fonction lorsque vous essayez de DESTROY L'activité elle-même. trouver d'abord le Fix du GPS à l'aide GPSStatusListener

Utilisez ce code

Check Gps Status

Appelez votre GpsTurnOff statut GPSStatusListener

+0

N'avez-vous pas que dois-je faire? – Sumit

+0

Que dois-je faire pour désactiver le GPS si l'emplacement n'est pas trouvé en première instance ... sans mise à jour de l'emplacement – Sumit

+0

@Sumit Utilisez d'abord GPSStatusListener pour trouver si votre application a obtenu un GPS Fix, si elle ne reçoit pas GPS Fix après quelques secondes appelez votre fonction dans GPSStatusListener. Veuillez lire attentivement la réponse dans mon exemple mentionné – user996428

0

nouveau gestionnaire(). postDelayed (nouveau { @Override Runnable() public void run() { turnGPSOnOff(); } }, 2000 * 60); cela va éteindre mon gps après un certain temps