Как определить, есть ли на устройстве Android серверная служба Geocoder - PullRequest
1 голос
/ 12 февраля 2010

Согласно документации Geocoder , класс предоставляет методы в бэкэнд-сервис, которые могут существовать или не существовать на устройстве. Если геокодер не существует на устройстве, теоретически запрос геокодера не даст результатов. Однако как можно отличить отсутствие результатов из-за отсутствия бэкэнд-службы геокодера и отсутствия результатов, поскольку местоположение не имеет смысла?

Мое приложение уже требует API Карт Google, так что, возможно, это спорный вопрос; В качестве дополнительного вопроса, включает ли в Google Maps API всегда геокодер?

Ответы [ 2 ]

4 голосов
/ 14 февраля 2010

Строго говоря, может быть установлен другой сервер, просто попробуйте, если присутствует геокодер

    final Geocoder geocoder = new Geocoder(this);
    final String locName = "1600 Amphitheatre Parkway, Mountain View, CA";
    try {
        final List<Address> list = geocoder.getFromLocationName(locName, 1);
        if ( ! (list == null || list.isEmpty()) ) {
            final Address address = list.get(0);
            System.out.println("Geocoder backend present, (lat,lon) = (" + address.getLatitude() + ", " + address.getLongitude() + ")");
        }
        else {
            System.out.println("Geocoder backend not present");
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
2 голосов
/ 13 февраля 2010

Согласно документам Google Maps , «API Карт Google предоставляет клиентский геокодер для геокодирования адресов». Поэтому я бы сказал, что, поскольку вам требуется API Google Maps, вам необходим геокодер.

...