Геокодер без MapView - PullRequest
       7

Геокодер без MapView

1 голос
/ 24 марта 2012

Я пытаюсь создать ответ из моих результатов по долготе и широте в адреса в виде простой строки. Когда я запускаю отладчик, я выдаю исключение Service Unavailable, я предполагаю, потому что я не ввел ключ API. У меня вопрос, куда я могу вставить ключ API, не создавая XML-файл, который создает представление карты, которое не используется?

Ответы [ 3 ]

2 голосов
/ 24 марта 2012

попробуйте:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());

       try {
  List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 1);
  if(addresses != null) {
   Address returnedAddress = addresses.get(0);
   StringBuilder strReturnedAddress = new StringBuilder("Address:\n");
   for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
    strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("\n");
   }
   myAddress.setText(strReturnedAddress.toString());
  }
  else{
   myAddress.setText("No Address returned!");
  }
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
  myAddress.setText("Canont get Address!");
 }

два разрешения в моем манифесте:

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
1 голос
/ 24 марта 2012

(Примечание: ответ изменен на основе комментариев)

Изначально я предполагал, что Аддон Google APIs необходим для работы Geocoder, поскольку в документации указано, что класс использует бэкэнд-сервис, который не предоставляется в основном андроиде. основа.

После дальнейшего изучения я обнаружил, что надстройка API Google не требуется. Скорее, целевое устройство должно поддерживать бэкэнд-сервис, и я предполагаю, что это означает, что это должно быть устройство с приложением Play Store или, может быть, приложение Google Maps или оба?

В любом случае, чтобы доказать теорию, я сделал простое тестовое приложение, которое не использует надстройку API Google, но все еще работает на моем устройстве Galaxy Nexus. Однако, если я запускаю его на эмуляторе (который, конечно, не включает в себя Play Store или Google Maps), он выдает Service not Available.

0 голосов
/ 12 ноября 2012

Посмотрите на строку

Geocoder geocoder = new Geocoder(this, Locale.getDefault());

Вместо этого попробуйте этот код ...

Geocoder geocoder = new Geocoder(this);

Это один и тот же код, но я решил проблему с этим.Но это было слишком странно.

хмм ..

...