Приложение использует объект Geocoder. Он отлично работает на моем складе Froyo Nexus One. Но затем я запускаю то же приложение на другом устройстве (планшет Advent Vega 10), также запускающий Froyo), и я получаю это исключение: Служба недоступна. Метод, который я использую, getFromLocationName()
, я строю против Android 1.6 API Google.
Мне известно о проблеме, когда это исключение выбрано на эмуляторе, но я подозреваю, что это другое. Зачем его бросать на одно устройство, на котором работает Froyo, но не на другое?
Приложение представляет собой приложение для местоположения, а поскольку планшет не имеет GPS или мобильной сети, в сценарии, когда соединение Wi-Fi не предоставляет местоположение, пользователь должен вручную указать его, поэтому не сможете использовать объект Geocoder - плохая новость.
Я мог бы добавить способ для пользователя выбрать местоположение на карте, но это не идеально. Возможно, я мог бы напрямую использовать API Карт Google, но я очень хочу понять природу проблемы, так как было бы неплохо иметь более легкое решение.
Надеемся, что в будущем выпуске Android будет включать "местоположение по умолчанию на уровне ОС" для устройств, отличных от Geocoder, поэтому приложения, ориентированные на местоположение, работают из коробки на таких устройствах, как Google TV.