Individuare la prima posizione su android e interrompere gli aggiornamenti

Ho ancora problemi a caricare la prima posizione su android. Sto usando i criteri come

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_COARSE); criteria.setSpeedRequired(true); String provider = lm.getBestProvider(criteria, true); if(provider!=null && provider.length()>0){ lm.requestLocationUpdates(provider, 0, 0, this); } 

Devo interrompere quando la prima volta trova la posizione come lm.removeUpdates (this); Dove mettere quella linea di codice? In onLocationChanged?

  • Quali sono le pratiche migliori per SQLite su Android?
  • Aggiunta dell'image 4mb dall'URL all'image imageView in studio android
  • Android: "Il loader di classi potrebbe non riuscire per i processi che ospitano più applicazioni"
  • Android studio 2.1.2 gradle aapt Errore di syntax: string citata non terminata
  • Android Come utilizzare MediaScannerConnection scanFile
  • UTF-8 non codifica html in webview android
  • 2 Solutions collect form web for “Individuare la prima posizione su android e interrompere gli aggiornamenti”

     public class GPSLocatorActivity extends Activity { double current_lat, current_lng; MapView mapView; boolean flag = true; /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* Use the LocationManager class to obtain GPS locations */ LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); LocationListener mlocListener = new MyLocationListener(); mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, mlocListener); } /* Class My Location Listener */ public class MyLocationListener implements LocationListener { public void onLocationChanged(Location loc) { current_lat = loc.getLatitude(); current_lng = loc.getLongitude(); if (flag == true) { flag = false; go(current_lat, current_lng); } } public void onProviderDisabled(String provider) { Toast.makeText(getApplicationContext(), "Gps Disabled !!! Please Enable It.", Toast.LENGTH_SHORT).show(); } public void onProviderEnabled(String provider) { Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); } public void onStatusChanged(String provider, int status, Bundle extras) { } }/* End of Class MyLocationListener */ protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; public void go(double c_lat, double c_lng) { System.out.println("your current Lat :: " + c_lat); System.out.println("your current Lng :: " + c_lng); /*turn of gps now */ turnGPSOff(); } private void turnGPSOff() { String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); if (provider.contains("gps")) { // if gps is enabled 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); } } }/* End of UseGps Activity */ 

    Sì. onLocationChanged verrà richiamato each aggiornamento della posizione. Se vuoi solo uno, puoi rimuoverlo.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.