2017-07-12 3 views
0

Ich baue eine App, die den Benutzer dort aktuelle Adresse von Toast, mit Lat lang zeigt. Ich benutze Geocoder, um lat lange in Adresse zu konvertieren, aber der Fall ist, auf einigen Geräten funktioniert Adresse gut, aber in einigen Geräten stürzt ab. Dann debugge ich die App auf diesen Geräten stürzt es ab, ich habe festgestellt, dass nach Geocoder-Zeile es springt, um (Ausnahme) zu fangen, ohne die anderen Zeilen auszuführen. Also, gibt es noch andere Möglichkeiten, den Standort durch Lat lang zu bekommen.Wie bekomme ich die Adresse von lat lange in android als die Verwendung von Geocoder

Es gibt eine andere Frage mit demselben Problem here, Aber das gab nicht viel Lösung, also frage ich es wieder.

Mein Geocoder Block ist

if (mLastLocation != null) { 
     double latitude = mLastLocation.getLatitude(); 
     double longitude = mLastLocation.getLongitude(); 
     try { 
      geocoder = new Geocoder(this, Locale.getDefault()); 
      addresses = geocoder.getFromLocation(latitude,longitude,1); 
      if (addresses != null && addresses.size() > 0){ 
       String address = addresses.get(0).getAddressLine(0); 
       String city = addresses.get(0).getLocality(); 
       String state = addresses.get(0).getAdminArea(); 
       String country = addresses.get(0).getCountryName(); 
       String postalCode = addresses.get(0).getPostalCode(); 
       Toast.makeText(getApplicationContext(), "Your address is: " +address+ " "+city+ " " + state+ "\n" +country+ " "+ postalCode, Toast.LENGTH_LONG).show(); 
      } 

     }catch (Exception e){ 
      e.printStackTrace(); 
     } 
+0

Diesen Link https://stackoverflow.com/questions/45004239/is-there-any-way-to-get-city-name-for-google-place-picker-android/45004308?noredirect=1# Kommentar76989519_45004308 –

+0

Danke @NancyY, Aber ich denke, du benutzt die gleichen Codes, aber ich werde es versuchen. – Neck

+0

In diesem Link habe ich auch eine alternative Lösung hinzugefügt, die Sie versuchen können –

Antwort

1

Sie können einfach Google-Maps Web-Service treffen die Breiten- und Längen vorbei. Es ist einfach ein GET-Method Web-Service.

http://maps.googleapis.com/maps/api/geocode/json?latlng=32,75&sensor=true

ersetzen lat und lange mit Ihrem eigenen lat & lang.

+0

Der eigentliche Grund, warum Geocoder nicht funktionierte, ist, weil der NetworkLocator in Aktion getötet wurde . Wahrscheinlich wegen weniger Speicher oder vielleicht hast du den Task-Manager benutzt, um alle Dienste zu beenden? –

+0

Danke Mann, werde es versuchen ... – Neck

Verwandte Themen