Android GPS Fix & getFromLocation - PullRequest
       30

Android GPS Fix & getFromLocation

2 голосов
/ 25 сентября 2011

У меня есть две проблемы, во-первых, у меня есть String Builder, который получает адрес и печатает его в виде текста:

  Geocoder mGC = new Geocoder(context,Locale.getDefault());
    address = mGC.getFromLocation(lat, lng, 1);

    if (address !=null){
     Address currentAddr = address.get(0);
     mSB = new StringBuilder();
     for (int i=0; i<currentAddr.getMaxAddressLineIndex(); i++){
     mSB.append(currentAddr.getAddressLine(i)).append(", ");
    }
   outputText.setText(mSB.toString());

}

Проблема в том, что случайно строка address = mGC.getFromLocation(lat, lng, 1); возвращает исключение нулевого указателя. Иногда это работает в течение нескольких дней ... затем внезапно возникает исключение нулевого указателя; кто-нибудь знает почему?

Также моя вторая проблема в том, что мое исправление GPS занимает некоторое время, я использую спутник GPS для него; Можно ли как-то использовать информацию, предоставленную сетью, а затем спутник GPS для более быстрого решения?

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Для первой проблемы, возможно, что для данного, lat, lon, может быть, нет адреса.Также этому сервису Geocoder нужен интернет, чтобы быть активным.

GPS всегда будет занимать время, чтобы починить.Для холодного старта это около 20 минут.Для горячего старта это может быть от 20 секунд до 1 минуты.Видите ли, он сканирует по всему спектру признаки спутниковой видимости, а затем вычисляет доплеровский сдвиг среди прочего.Если у вас есть интернет на вашем телефоне, это время сократится из-за поддержки вашего телефона серверами AGPS.NetworkProvider очень неточен. Это лучший способ манипулировать ими.

1 голос
/ 25 сентября 2011

О вашей второй проблеме: вам нужно иметь двух слушателей местоположения, одного для сети и другого для GPS.Затем вы должны использовать onLocationChanged на каждом слушателе, чтобы выполнить свою логику, в этом случае сначала используйте сетевое местоположение, и как только вы получите обновление для GPS, вы используете его вместо этого.

...