Ich bin neu in Android Entwicklung, nach meinem Code ist über die Verwendung Geocoder Stadt Name der aktuellen Lage zu bekommen, es gibt null zurück:Android Geocoder null zurück Stadtname
private void updateCurrentLocation (Lage, Lage) { double lat = 0,0, lng = 0,0;
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
Log.i("tag", "Latitute is" + lat + ", Longtitute is" + lng);
} else {
City_Name = "Unavailable";
}
List<Address> list = null;
Geocoder geocoder = new Geocoder(this.getActivity());
try {
list = geocoder.getFromLocation(lat, lng, 1);
} catch (IOException e) {
e.printStackTrace();
}
//may provide multiple locations.
if (list != null && list.size() > 0) {
Address address = list.get(0);
City_Name = address.getLocality();
}
Log.i("Try", "CityName:" + City_Name);
//send empty message
handler.sendEmptyMessage(1);
}
Ich öffnete GPS-Dienste, ACCESS_FINE_LOCATION und INTERNET-Berechtigung in Manifest bereits hinzufügen. Außerdem habe ich in Stackoverflow ähnliche Fragen zu Geocoder gestellt, die null zurückgeben, aber keine brauchbaren Lösungen gefunden haben. Einer von ihnen ist JSON von Geocoder Website zu analysieren, aber es funktioniert auch nicht.
Kann mir jemand dabei helfen? Vielen Dank! BTW, gibt es eine bessere Lösung, um einen Stadtnamen zu erhalten? Vielen Dank!
Hat Ihr Code eine IOException ausgelöst? – josemgu91
Wenn Sie auf einer Geräte-API 23 oder höher testen, müssen Sie die Berechtigung anfordern, andernfalls wird sie standardmäßig deaktiviert. Eine schnelle Lösung besteht darin, die Berechtigung über Einstellungen> Apps> "App-Name"> Berechtigungen zu genehmigen. – MoGa
@ josemgu91 Nein, es funktioniert gut, aber es gibt keinen Rückgabewert. – LunarS