L'acquisition des coordonnées de localisation actuelles via le fournisseur RÉSEAU du système de localisation d'Android s'avère un défi pour l'utilisateur , car ils reçoivent systématiquement des coordonnées obsolètes au lieu des coordonnées actuelles. Malgré la mise en œuvre de plusieurs classes existantes, le problème persiste.
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; } }
Le problème peut être attribué à mises à jour de localisation insuffisantes. Voici un extrait de code modifié pour le résoudre :
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
Assurez-vous que les autorisations appropriées sont déclarées dans le fichier manifeste :
Localisation basée sur le réseau Uniquement
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Localisation par GPS uniquement
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!