【问题标题】:Geocoder doesn't go on Oreo地理编码器不会在奥利奥上运行
【发布时间】:2018-09-06 07:43:34
【问题描述】:

我有一个必须从 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:{}

我试图搜索它,但没有找到解决方案。 我该如何解决这个问题?

【问题讨论】:

    标签: android google-maps android-6.0-marshmallow android-8.1-oreo geocoder


    【解决方案1】:

    正如Gencoder doc 所说:使用 isPresent() 方法确定是否存在 Geocoder 实现。

    所以先调用isPresent()方法,手动检查设备网络状态。

    如果仍然失败,也许您需要创建自定义 Geocoder 实现,this link 很有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多