Android - Geocoder.getFromLocationName() не работает в устройстве ICS
У меня есть два устройства. Один из них - HTC Wildfire S, а другой - HTC 1V. Я использовал Geocoder.getFromLocationName()
в своем приложении. Он успешно работает в HTC wildfire S. Но в HTC 1V появилась следующая ошибка. почему это произошло? Как я могу это решить? пожалуйста, кто-нибудь может мне помочь.
код
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault());
//s is the address
List<Address> addresses = geoCoder.getFromLocationName(s, 5); //Here i got the following Exception.
Ошибка
06-18 16:28:17.933: W/System.err(4960): java.io.IOException: Service not Available
06-18 16:28:17.953: W/System.err(4960):at android.location.Geocoder.getFromLocationName(Geocoder.java:178)
Вкладка
![enter image description here]()
Ответы
Ответ 1
Наконец, я нашел ответ: https://code.google.com/p/android/issues/detail?id=38009
Перезагрузите устройство для работы Geocoder. Надеюсь, что это поможет кому-то.
Примечание: некоторые говорят, что он будет работать, если вы используете Google API 16
Ответ 2
GeoPoint point = new GeoPoint(
(int) (LATITUDE * 1E6),
(int) (LONGITUDE * 1E6));
String n;
public void someRandomMethod() {
n = convertPointToLocation(point);
}
public String convertPointToLocation(GeoPoint point) {
String address = "";
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6,
point.getLongitudeE6() / 1E6, 1);
if (addresses.size() > 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++)
address += addresses.get(0).getAddressLine(index) + " ";
}
}
catch (IOException e) {
e.printStackTrace();
}
return address;
}