[英]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.