你好,世界!

我正在尝试开发一个应用程序,它可以根据纬度和经度显示波斯语地址。
我应该如何实施呢?

我以这种方式使用GeoCoder类;

 public String  getAddress(Context context ,double latitude , double longitude)
 {
    String fullAddress = null ;
    try {
        Geocoder geocode = new Geocoder(context, new Locale("fa"));
        List<android.location.Address> addresses = geocode.getFromLocation(latitude, longitude, 1);
        Address ad = addresses.get(0);
        fullAddress = ad.getAddressLine(0);
    }
    catch (IOException exc)
    {
        fullAddress =exc.getMessage();
        exc.printStackTrace();
    }

    return fullAddress;
}


这就是我得到的。

 W/System.err: java.io.IOException: grpc failed
 W/System.err:     at android.location.Geocoder.getFromLocation(Geocoder.java:136)


如果我将Locale.getDefault()作为Geocoder Ctor参数发送,则结果不会改变

这段代码有什么问题?

感谢您的答复

最佳答案

有一种可能是您从getFromLocation方法获得的,该方法返回的空列表称为here,但是我通过以下操作解决了相同的问题。


如果您在发布本文之前遇到此问题,请重新运行您的应用并查看
如果现在可行。
如果仍然无法正常工作,请尝试卸载并删除所有文件
与Android Studio有关。 (不是项目文件)。
然后重新安装Android Studio,并重新打开备份的项目。
运行应用程序时,请使用其他虚拟设备和设备API。

07-27 22:00