[英]Geocoder returns false on isPresent()
因此,我在应用程序中编写了一些地图代码,它可以在手机上正常工作,但遗憾的是,它在我的模拟器上无法正常工作,这对我来说不够舒适,这是代码:
String searchString = mSearchText.getText().toString();
Geocoder geocoder = new Geocoder(this);
List<Address> list = new ArrayList<>();
try{
int i=0;
while(list.size()==0 && i<10) {
boolean a = geocoder.isPresent();
list = geocoder.getFromLocationName(searchString,1);
i++;
}
}catch(IOException e){
Log.d(TAG, "geoLocate: IOException " + e.getMessage());
}
因此,当我调试它时,我在模拟器上看到变量“ a”始终为假。
我使用Visual Studio的Android模拟器,因为我有一个AMD处理器(Ryzen 7 1800x),上面安装了Google Play商店和Google Play服务(地图工作正常,只是地理编码器无法工作),现在可以通过某种方式对其进行修复?
正如我在https://developer.android.com/reference/android/location/Geocoder.html网站上阅读的那样: “如果平台中没有后端服务,则Geocoder查询方法将返回一个空列表。” 我能以某种方式获得服务吗? 可以在我的模拟器上下载它吗?
首先,isPresent()是静态方法,因此调用应为
Geocoder.isPresent();
IsPresent方法“如果实现了Geocoder方法getFromLocation和getFromLocationName,则返回true”,否则返回false。 某些模拟器未安装地理编码器服务。 是方法
geocoder.getFromLocationName
返回您需要的还是一个空数组?
您的代码段可以在Nexus 6P Android 7.0 API 24仿真器上正常运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.