Служба Android Geocoder API 10 не доступна - PullRequest
1 голос
/ 09 января 2012
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.ENGLISH);
try {
    List<Address> addresses =  geocoder.getFromLocation(lat,lon, 1); <--Exception

Этот код вызывает исключение. Услуга недоступна.Может кто-нибудь мне помочь?Я читал, что это ошибка для A 2.2, api 10 - это 2.3.3, поэтому теоретически это должно работать.

1 Ответ

5 голосов
/ 07 февраля 2012

ОТВЕТ:

Сначала, если вы используете эмулятор, попробуйте установить "цель" для устройства AVD на один из "API Google" вместо базового "Android"SDK.Поэтому, если вы хотите настроить таргетинг на 2.3.3, используйте «Google API (Google Inc.) - API Level 10» и not «Android 2.3.3 - API Level 10».

ОБЩАЯ ИНФОРМАЦИЯ

Аддон API Google включает серверную часть реализацию службы (поиск "серверная часть геокодера"), которая обязательна для работы методов Geocoder.getFromLocation....

Классу Geocoder требуется бэкэнд-сервис, который не включен в базовую платформу Android

То естьпочему ваш AVD должен предназначаться для API Google, чтобы эти методы работали.Если это не сработает, попробуйте протестировать на реальном устройстве.Помимо возможной ошибки, причиной получения этого исключения является либо проблема с Интернетом / отсутствие соединения, либо, скорее всего, на этом устройстве нет службы backend .

Предположительно, большинствона устройствах, которые включают службы и приложения Google, такие как Карты и т. д., будет реализован бэкэнд.Я не знаю, насколько это точно.

Существует также метод, начинающийся с API9, Geocoder.isPresent(), который будет возвращать значение true, если присутствует внутренняя реализация. Однако , я считаю, что это ненадежно, так как тестирование на Amazon Kindle Fire вернуло true, но при совершении вызова getFromLocationName() я все равно получил IOException: Service Not Available

Кажется,Самый надежный способ определить, присутствует ли серверная часть, - это просто позвонить getFromLocation... и посмотреть, является ли ваше поле addresses 1043 * или List пусто.Существует некоторая двусмысленность в том, что эти методы могут также возвращать null или пустой список, если просто совпадений не найдено .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...