以下代碼適用於在1.5,1.6, 和2.0上運行的實際設備以及在2.1上運行的仿真器。Android:Nexus One - 地理編碼器導致IOException - 與其他設備和仿真器完美配合
然而,在Nexus One上(運行2.1)執行它 引發一個IOException異常:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
這就是代碼段它發生在哪裏:
Double myLatitude = AppObject.myLocation.getLatitude();
Double myLongitude = AppObject.myLocation.getLongitude();
DEBUG.i(TAG, "My location: " + myLatitude + " | " + myLongitude);
Geocoder geocoder = new Geocoder(MainActivity.this);
java.util.List<Address> addressList;
try {
addressList = geocoder.getFromLocation(myLatitude, myLongitude, 5);
if(addressList!=null && addressList.size()>0) {
currentAddress = new String();
DEBUG.i(TAG,addressList.get(0).toString());
currentAddress = addressList.get(0).getAddressLine(0) + ", "
+ addressList.get(0).getAddressLine(1) + ", "
+ addressList.get(0).getAddressLine(2);
}
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
我已經寫了一個應用程序中幾乎完全相同的代碼,並且它在我的Nexus One上運行良好。您是否能夠將其縮小到任何特定的內容,例如,當您致電地理編碼器時,Nexus One可能沒有互聯網連接? – 2010-01-18 16:44:32
你的清單中是否有 ? –
haseman
2010-01-18 17:42:51
它以某種方式現在工作。在我的代碼和Nexus One上沒有任何更改。幽靈般的。 haseman:我正在使用ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION,但我無法在文檔中找到你推薦的android.permission.LOCATION:http://developer.android.com/intl/fr/reference/android/Manifest。 permission.html – znq 2010-01-21 10:34:37