comment je peux obtenir le nom de la ville de mon poste actuel?
Je travaille avec android studio et dans une fenêtre de dialogue, je veux que les utilisateurs peuvent obtenir leur position, mais tout ce que je sais faire est d'obtenir ma latitude et la longitude.
C'est le code
import android.app.Activity;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity implements LocationListener {
private TextView latituteField;
private TextView longitudeField;
private LocationManager locationManager;
private String provider;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latituteField = (TextView) findViewById(R.id.TextView02);
longitudeField = (TextView) findViewById(R.id.TextView04);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
System.out.println("Provider " + provider + " has been selected.");
onLocationChanged(location);
} else {
latituteField.setText("Location not available");
longitudeField.setText("Location not available");
}
}
@Override
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
}
@Override
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
}
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude());
int lng = (int) (location.getLongitude());
latituteField.setText(String.valueOf(lat));
longitudeField.setText(String.valueOf(lng));
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(this, "Enabled new provider " + provider,
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(this, "Disabled provider " + provider,
Toast.LENGTH_SHORT).show();
}
}
dans le MainActivity.Pouvez-vous m'aider?
J'ai ajouté ceci dans le manifeste
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
mais il indique toujours "l'Emplacement n'est pas disponible".
- par le nom que vous entendez Adresse?
- oui, je veux dire la ville: exemple. Florence
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la GeoCoder classe pour obtenir Adresse à partir d'un Lat/Long. essayez ce qui suit:
Code ci-dessous devrait fonctionner pour vous: (Cocher les commentaires en ligne au sujet de votre code)
Vous avez besoin pour exécuter le Géocodeur dans un AysncTask (ou dans un Thread pas dans la même ThreadGroup que le Thread d'INTERFACE utilisateur)!
Avec ce résumé Auditeur
Maintenant appeler la méthode comme ceci:
Espère que cela aidera certains d'entre vous!
Vous pouvez utiliser l'api de google pour obtenir de l'emplacement actuel de l'adresse. Découvrez ma réponse dans ce post, allez obtenir votre ville.
Comment obtenir le nom de la ville à partir de la latitude et de longitude dans Google Maps?