Das Erfassen aktueller Standortkoordinaten über den NETWORK-Anbieter des Android-Standortsystems stellt für den Benutzer eine Herausforderung dar , da sie durchweg veraltete statt aktuelle Koordinaten erhalten. Trotz der Implementierung mehrerer vorhandener Klassen besteht das Problem weiterhin.
MainActivity
public class MainActivity extends Activity { GPSTracker mGPS = new GPSTracker(this); @Override protected void onCreate(Bundle savedInstanceState) { // ... if (mGPS.canGetLocation) { mGPS.getLocation(); // ... } else { // ... } } }
GPSTracker
public class GPSTracker implements LocationListener { private LocationManager locationManager; public Location getLocation() { // ... if (isNetworkEnabled) { locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); // ... } // ... return location; } }
Das Problem kann zugeschrieben werden zu unzureichenden Standortaktualisierungen führen. Hier ist ein geänderter Codeausschnitt, um das Problem zu beheben:
MainActivity
public class MainActivity extends Activity { private LocationListener mLocationListener = new LocationListener() { // ... }; @Override protected void onCreate(Bundle savedInstanceState) { // ... LocationManager mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE); mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, LOCATION_REFRESH_TIME, LOCATION_REFRESH_DISTANCE, mLocationListener); } }
Manifest
Stellen Sie sicher, dass die entsprechenden Berechtigungen deklariert sind in der Manifestdatei:
Netzwerkbasierter Standort Nur
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Nur GPS-basierter Standort
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Das obige ist der detaillierte Inhalt vonWarum erhalte ich über den Netzwerkanbieter von Android veraltete Standortkoordinaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!