2012-05-17 7 views
11

ich diesen Code bin mit geografischen Adressen zu erhalten:java io IOException derzeit keine Antwort vom Server Geocoder analysieren

private String getAddress(Location location) 
{ 
    try{ 
     List<Address> addresses = new Geocoder(this,Locale.getDefault()).getFromLocation(location.getLatitude(), location.getLongitude(), 1); 
     if(addresses!=null) 
     { 
      String address="Address not available"; 

      for(int i=0;i<addresses.size();i++) 
      { 

       Address addre=addresses.get(i); 

       String street=addre.getAddressLine(0); 
       if(null==street) 
        street=""; 

       String city=addre.getLocality(); 
       if(city==null) city=""; 

       String state=addre.getAdminArea(); 
       if(state==null) state=""; 


       String country=addre.getCountryName(); 
       if(country==null) country=""; 

       address=street+", "+city+", "+state+", "+country; 

      } 
      return address; 
     } 

    } 
    catch (Exception e) { 
     return "Address not available"; 
    } 
    return "Address not available"; 
} 

Frühere ich eine Adressliste zurückgekehrt war immer, aber jetzt habe ich bekommen, jedes Mal, diese Ausnahme:

java.io.IOException unable to parse response from server 

Bitte helfen.

+0

... Es gibt also zwei Möglichkeiten: 1: Der Netzwerkstatus wurde geändert und Sie erhalten keine Antwort vom Server. Oder, 2: Sie haben etwas geändert, das Ihren Code zerstört hat. Warum gehst du nicht zurück und stellst sicher, dass du nichts änderst von der Zeit bis zu der es funktionierte. Wenn alles in Ordnung ist, stellen Sie sicher, dass Sie den Server im Netzwerk auch auf andere Weise erreichen können. Wenn Sie immer noch Probleme haben, zeigen Sie uns Ihren Code und die Logcat (= – dcow

+0

Der vorherige und aktuelle Code ist 100% gleiche –

+0

Also hast du die anderen Dinge, die ich vorgeschlagen? – dcow

Antwort

6

Endlich habe ich die Lösung meines Problems.

Wenn Sie versuchen, Server zu treffen sehr häufig (mehrmals in einer Minute) für die Adresse immer von lat, long, dann können Sie diese exception.The Lösungen dieses Problems kann erhalten werden:

1-Bitte versuchen Sie es um mehrere Treffer für die Adresse in einer Minute zu vermeiden.
2 - Führen Sie diesen Code auf einem anderen Gerät aus.

Wenn Sie diesen Code auf demselben Gerät ausführen möchten, löschen Sie Ihre App-Daten (oder deinstallieren Sie Ihre App) und warten Sie einige Zeit.

+0

Ich habe dies in zwei Geräten Motorola und Samsung getestet. Für Motorola bin ich in der Lage, die Daten zu bekommen, aber für Samsung-Gerät kann ich es nicht beheben. Hast du einen anderen Weg gefunden, das zu beheben? – John

+0

@Atul Bhardwaj: Ich bin auch auf das gleiche Problem, immer noch versucht zu lösen, aber kein Glück. –

+0

Wie John erwähnt, funktioniert es gut auf einigen Geräten nicht auf wenigen Geräten.Nach einiger Zeit/Neustart des Geräts macht die gleiche Funktionalität, um auf den Geräten zu arbeiten, die vorher nicht waren. Sieht sehr seltsam aus !. Kann irgendjemand etwas reparieren? –

2

Ich hatte das gleiche Problem mit meinem Samsung Galaxy Tab 10.1. Ich suche Stunden nach einer Lösung und nichts half. Um dies zu beheben Probleme versuchen folgende:

Zum Standorteinstellungen und aktivieren:

1.Verwenden Drahtlose Netzwerke 2.Use GPS-Satelliten

Warten auf GPS-Position fixieren

Nach diesem Geocoder-Server geantwortet. Selbst wenn ich den WLAN- und GPS-Standort deaktivierte, funktionierte der Server. Ich glaube, Geocoder können nur verwendet werden, wenn Sie Ihren Standort mit Google teilen.

0

Meine Lösung war:

Settings > Date & Time > Automatic date & time (Use network-provided time) 
0

Meine Ursache des Problems war nicht für den Geocoder

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
0

Ich war immer das gleiche Problem, die richtigen Berechtigungen hat. i hinzugefügt, um diese Erlaubnis

android.permission.WRITE_EXTERNAL_STORAGE

und es hat gut funktioniert.