Android – Come get la posizione corrente dell'utente each volta basata su networking sim

Voglio avere sempre la posizione attuale dell'utente (latitudine e longitudine) sempre utilizzando la networking Sim basata, non utilizzando altre reti (come WiFi, dati mobili, GPS e altre reti e anche tutte queste sono in modalità distriggersta in modalità mobile). Non necessariamente posizione esatta ma anche posizione approssimativa. C'è la possibilità di farlo. Se uno di voi può spiegare e includere codice; Ho cercato in Google ma non ho ottenuto la risposta corretta correlata …

Grazie in anticipo

  • get il colore di background dalla visualizzazione di text senza utilizzare ColorDrawable (API 11)
  • Riproduci streaming RTSP in un'applicazione Android
  • Come submit email con il link per aprire l'applicazione Android
  • Invio di dati tramite Bluetooth con Android
  • Android Studio nessuna procedura guidata di installazione
  • Errori comuni durante la scrittura di Android Project
  • E 'ansible inserire un TextView all'interno di un RadioGroup. Ma, è una buona pratica?
  • Come posso fare la width del filatore uguale come la width di width disponibile più grande
  • Utile risorse di sistema Android
  • I suggerimenti della tastiera causano una parte del messaggio Android EditText.setError () per non visualizzare
  • Bussola Android che può compensare l'inclinazione e il passo
  • Come controlla la connessione internet in android?
  • One Solution collect form web for “Android – Come get la posizione corrente dell'utente each volta basata su networking sim”

    Qui prendi il mio codice per get la longitudine e la latitudine. È l'integer progetto. Dare un'occhiata. Funziona perfettamente bene. Tuttavia è necessario triggersre GPS e WIFI, perché sopra la versione 4.0 non è ansible triggersre gps in modo programmato

    Utilizza il mio codice per get la posizione. Trasforma i tuoi GPS e wifi prima: –

    Utilizza il mio codice. Ho trovato correttamente il mio indirizzo corrente utilizzando le coordinate, ma per questo devi abilitare wifi e gps. innanzitutto aggiungere tutte queste autorizzazioni nel file manifesto android

    <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    AndroidGPSTrackingActivity.java *

     package com.example.gpstracking; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.List; import java.util.Locale; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.location.Address; import android.location.Geocoder; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.widget.Button; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Toast; import android.widget.ToggleButton; public class AndroidGPSTrackingActivity extends Activity { Button btnShowLocation; // GPSTracker class GPSTracker gps; ToggleButton gpstoggle,wifitoggle,datatoggle; static WifiManager wifiManager; LocationManager lm; WebView web; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnShowLocation = (Button) findViewById(R.id.btnShowLocation); gpstoggle = (ToggleButton) findViewById(R.id.gps); wifitoggle = (ToggleButton) findViewById(R.id.wifi); wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); lm = (LocationManager) getSystemService(LOCATION_SERVICE); //gps toggle gpstoggle.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ 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")); getApplicationContext().sendBroadcast(poke); } else{ 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")); getApplicationContext().sendBroadcast(poke); } } }); //wifi toggle wifitoggle.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ wifiManager.setWifiEnabled(true); } else{ wifiManager.setWifiEnabled(false); } } }); // show location button click event btnShowLocation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // create class object gps = new GPSTracker(AndroidGPSTrackingActivity.this); // check if GPS enabled if(gps.canGetLocation()){ double latitude = gps.getLatitude(); double longitude = gps.getLongitude(); Geocoder gcd = new Geocoder(getApplicationContext(), Locale.getDefault()); List<Address> addresses = null; try { addresses = gcd.getFromLocation(latitude, longitude, 1); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(!(addresses == null)){ if (!addresses.isEmpty() ){ System.out.println(addresses.get(0).getLocality()); Address address = addresses.get(0); String addressText = String.format("%s, %s, %s, %s, %s, %s", address.getAddressLine(0), address.getAddressLine(1), address.getAddressLine(2), address.getAddressLine(3), address.getPhone(), address.getPremises()); System.out.println(addressText); // \n is for new line Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show(); }else{ // can't get location // GPS or Network is not enabled // Ask user to enable GPS/network in settings gps.showSettingsAlert(); } }else{ // can't get location // GPS or Network is not enabled // Ask user to enable GPS/network in settings gps.showSettingsAlert(); } } } }); } } 

    GPSTracker.java

     package com.example.gpstracking; import android.app.AlertDialog; import android.app.Service; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.os.IBinder; import android.provider.Settings; import android.util.Log; import android.widget.Toast; public class GPSTracker extends Service implements LocationListener { private final Context mContext; // flag for GPS status boolean isGPSEnabled = 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 GPSTracker(Context context) { this.mContext = context; getLocation(); } public Location getLocation() { try { locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE); // getting GPS status isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // getting network status boolean wifiEnabled = AndroidGPSTrackingActivity.wifiManager.isWifiEnabled(); ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); this.canGetLocation = true; // if DATA Enabled get lat/long using WIFI Services if (activeNetwork.isConnected()) { locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("Network", "Network"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } } // if WIFI Enabled get lat/long using WIFI Services if (wifiEnabled) { locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("Network", "Network"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } } // if GPS Enabled get lat/long using GPS Services if (isGPSEnabled) { if (location == null) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("GPS Enabled", "GPS Enabled"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.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(){ if(locationManager != null){ locationManager.removeUpdates(GPSTracker.this); } } /** * Function to get latitude * */ public double getLatitude(){ if(location != null){ latitude = location.getLatitude(); } // return latitude return latitude; } /** * Function to get longitude * */ public double getLongitude(){ if(location != null){ longitude = location.getLongitude(); } // return longitude return longitude; } /** * Function to check GPS/wifi 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.Builder(mContext); // Setting Dialog Title alertDialog.setTitle("GPS is settings"); // Setting Dialog Message alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?"); // On pressing Settings button alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); mContext.startActivity(intent); } }); // on pressing cancel button alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); // Showing Alert Message alertDialog.show(); } @Override public void onLocationChanged(Location location) { } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public IBinder onBind(Intent arg0) { return null; } } 

    main.xml

     <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/btnShowLocation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Location" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/> <ToggleButton android:id="@+id/gps" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/btnShowLocation" android:layout_alignRight="@+id/btnShowLocation" android:layout_marginBottom="49dp" android:layout_marginRight="72dp" android:text="GPS" /> <ToggleButton android:id="@+id/wifi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/gps" android:layout_alignBottom="@+id/gps" android:layout_alignLeft="@+id/btnShowLocation" android:layout_marginLeft="79dp" android:text="WIFI" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/gps" android:layout_alignLeft="@+id/btnShowLocation" android:text="GPS" android:textSize="15sp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/textView1" android:layout_alignBottom="@+id/textView1" android:layout_marginLeft="61dp" android:layout_toRightOf="@+id/textView1" android:text="WIFI" android:textSize="15sp" /> </RelativeLayout> 

    AndroidManifest.xml

     <?xml version="1.0" encoding="utf-8"?> 

     <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".AndroidGPSTrackingActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> </manifest> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.