0

Google Maps API のマーカーから住所を収集する必要があるアプリケーションがあります。このコードをテストしたところ、Android 6.0 を実行するデバイスで正常に動作します。

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        try {
            List<Address> addressList1 = geocoder.getFromLocation(currentLatitude,currentLongitude,1);
            Address addressCurrent = addressList1.get(0);
            full_address = addressCurrent.getAddressLine(0); //Detail address
            country = addressCurrent.getCountryName();
            //locality =  addressCurrent.getLocality(); //sub-district
            admin_area = addressCurrent.getAdminArea(); //City
            sub_admin_area = addressCurrent.getSubAdminArea(); //District
            road_name = addressCurrent.getThoroughfare(); // road
            Toast.makeText(this, full_address, Toast.LENGTH_SHORT).show();
        }catch (IOException e){
            Toast.makeText(this, "No Data", Toast.LENGTH_SHORT).show();
            Log.e("error geocoder", e.toString());
        }

しかし、Android 8.1 デバイスで実行しようとすると、エラー ログが返されます。

E/エラー ジオコーダ: java.io.IOException: NetCode:-1000,NetRes:{}

私はそれを検索しようとしましたが、解決策が見つかりませんでした。どうすればこれを修正できますか?

4

1 に答える 1

0

Gencoder docが言うように: isPresent () メソッドを使用して、Geocoder 実装が存在するかどうかを判断します。

そのため、最初に isPresent() メソッドを呼び出し、デバイスのネットワーク ステータスを手動で確認します。

それでも失敗する場合は、カスタム Geocoder 実装を作成する必要がある可能性があります。このリンクは役に立ちます。

于 2018-09-06T08:11:16.097 に答える