11

このコードを使用して地理的な住所を取得しています。

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";
}

以前はアドレス リストが返されていましたが、今では毎回次の例外が発生します。

java.io.IOException unable to parse response from server 

助けてください。

4

5 に答える 5

6

最後に、私は私の問題の解決策を得ました。

緯度経度からアドレスを取得するために非常に頻繁に (1 分間に数回) サーバーにアクセスしようとすると、この例外が発生する可能性があります。この問題の解決策は次のとおりです。

1-1分間に数回のアドレスヒットは避けてください。
2-このコードを別のデバイスで実行します。

このコードを同じデバイスで実行する場合は、アプリのデータを消去 (またはアプリをアンインストール) して、しばらく待ちます。

于 2012-08-13T06:01:32.813 に答える
2

Samsung GalaxyTab10.1でも同じ問題が発生しました。私は解決策を何時間も探しましたが、何も役に立ちませんでした。問題を修正するには、次のことを試してください。

[場所の設定]に移動して、次を有効にします。

1.ワイヤレスネットワークを使用する2.GPS衛星を使用する

GPS位置の修正を待つ

この後、ジオコーダーサーバーが応答しました。ワイヤレスとGPSロケーションを無効にしても、サーバーは機能していました。ジオコーダーは、現在地をGoogleと共有している場合にのみ使用できると思います。

于 2012-10-15T09:41:11.987 に答える
0

私は同じ問題を抱えていました。私はこの許可を追加しました

android.permission.WRITE_EXTERNAL_STORAGE

そしてそれはうまくいきました。

于 2014-02-17T10:32:01.083 に答える
0

問題の原因は、ジオコーダーに適切な権限がなかったことです。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
于 2013-03-20T15:59:20.893 に答える
0

私の解決策は次のとおりです。

Settings > Date & Time > Automatic date & time (Use network-provided time)
于 2013-01-21T08:48:47.467 に答える