Android getlastknownlocation возвращает null

getLastKnownLocation возвращает null в Android

Я знаю, что об этом говорили много раз, но ничто не помогло мне устранить проблему, по которой getLastKnownLocation возвращает null.

Моя активность реализует LocationListener:

У меня это в моем методе onCreate:

И затем я попытаюсь найти местоположение пользователя так (также в onCreate):

Я попробовал тогда:

Я что-то упускаю?

EDIT: все еще не работает, но код, который я пробовал:

“Возвращает местоположение, указывающее данные из последнего известного исправления местоположения, полученного от данного провайдера.

Возвращает последнее известное местоположение для провайдера или null “

Таким образом, должно быть по крайней мере одно предыдущее местоположение, полученное с помощью поставляемого поставщика. Чтобы получить это местоположение, вы должны регистрироваться на обновления хотя бы один раз с использованием этого провайдера и получать фактическое обновление. После этого getLastKnownLocation вернет это значение. Если вы хотите зарегистрироваться для местоположений, предоставляемых другими приложениями, используйте Location.PASSIVE_PROVIDER.

Надеюсь это поможет.

Изменение: как я уже говорил выше, поставьте цикл while, в котором итерации говорят в течение 30 секунд, и проверяет каждую секунду, если местоположение больше не равно null. Вам нужно, чтобы это произошло хотя бы один раз, чтобы затем использовать getLastKnownLocation, AFAIK.

Редактируйте с помощью небольшого непроверенного примера. Лучше всего поместить все это в AsyncTask, то есть в doInBackground. Заметьте, я предполагаю, что вы сами храните объект Location, а не разделяете его на долготу и широту.:

Изменение: Помните, что местоположение обновлено в onLocationUpdate (Location location). Один из них был обновлен, тогда у вас есть объект местоположения, не равный нулю.

Вы должны подождать некоторое время, чтобы получить место, потому что GPS занимает несколько секунд, чтобы разогреться.

Если вы вызываете непосредственно getLastLocation он вернет вам последнее местоположение поиска или когда-нибудь null, когда нет места кеша. Всегда хорошо, если вы внедряете службу определения местоположения и пытаетесь получить местоположение onLocationChanged . Вы можете сохранить эту переменную как статическую для доступа в других классах.

Когда-то, провайдер GPS не может получить местоположение, когда вы находитесь в здании, поэтому в этом случае вы можете переключиться на Network provider, чтобы получить местоположение, но в сетевом провайдере было бы меньше, чем сравнение с провайдером GPS

Для более точного местоположения вы можете использовать некоторое время в onLocationChanged пока не убедитесь, что точность лучше.

Источник

locationManager.getLastKnownLocation () возвращает null

Я не понимаю, почему locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); возвращает значение location null. Я дал все разрешения, но его reutning null .

5 ответов

У меня была точно такая же проблема. Это было потому, что мое устройство не хранило последнее известное местоположение. Я просто пошел на Google Maps и определил свое местоположение с помощью GPS, затем было возвращено значение getLastKnownLocation ()

Читайте также:  Live chat для андроид

вы можете запросить обновления местоположения такой

затем при первом обратном вызове в locationChangeListener.onLocationChanged задайте координаты. Просто не забудьте позвонить mLocationManager.removeUpdates(locationChangeListener)

Accoding к документация, он возвращает null, если устройство не знает о последнем известном местоположении. Вероятно, GPS не может найти вас. В любом случае, это займет около минуты или больше. Поэтому постарайтесь выйти на улицу, под ясное небо, подальше от высоких зданий, и ждать, пока GPS не сможет найти вас.

я использовал этот метод для получения местоположения, я думаю, это поможет вам

когда вы используете GPS в качестве провайдера, то он дает ваш результат с 1 до 2 mnts, так что вы должны contentiously проверить для этого, когда получить местоположение остановки и поставщик сети дает вам немедленное locationwhen вы запрашиваете. Таким образом, вы не получите немедленное местоположение lat lon в GPS-провайдере.

GPS принимает 1 до 2 только в первый раз, то после того, как он даст местоположение вам по вызову.

Источник

Почему функция getLastKnownLocation возвращает Null в Android SDK?

Я использую android sdk в eclipse, и я хочу получить местоположение с устройства, поэтому я написал программу в другом классе (отличном от основного) и вызываю функцию mContext внутри этого класса из основного класса:

Проблема в том, что getLongitude или getLatitude возвращают значение null, поэтому программа вылетает из этой строки с этим журналом:

Что не так с этим кодом?

PS: Я прочитал другой вопрос с тем же названием и без справки по теме (ни один из них не имеет фактического ответа), потому что:

1-Я тестирую эту программу на реальном устройстве (не эмуляторе) с включенным и работающим GPS, но эта программа не может определить местоположение, хотя устройство получило свое местоположение раньше и должно отображать LastKnownLocation .

2-Я дал программе ACCESS_FINE_LOCATION и ACCESS_COARSE_LOCATION разрешение.

3-Я даже использую функцию, чтобы увидеть, включен ли GPS, когда я его выключаю, программа предупреждает меня.

2 ответа

Это был глупый вопрос: он был пустым, потому что он был NULL, я понимаю это по комментариям по основному вопросу, моим решением было загрузить изображение api android в диспетчере sdk, запустить карту Google один раз и отправьте ему местоположение GPS с помощью DDMS , а затем запустите программу.

Я попытался изменить часть своего кода, надеюсь, он сработает для ваших нужд.

Вы найдете реализацию моего кода LocationsCoreModule внизу ответа:

Если вы хотите, чтобы приложение сразу же начало прослушивать новые местоположения GPS:

Источник

getLastKnownLocations всегда возвращает null

Я не могу получитьLastKnownLocations на своем устройстве Android (Samsung Galaxy Note N7000), так как он всегда равен нулю, башни обнаруживаются как сеть, так что все в порядке, кто-нибудь знает, как узнать мое местоположение?

Читайте также:  Dr web free antivirus android

3 ответа

Последнее известное местоположение доступно только в том случае, если местоположение было определено другим приложением до вашего звонка. запустите карты или какое-либо другое приложение и позвольте ему получить блокировку местоположения. затем запустите свое приложение.

Если вам действительно нужно местоположение в вашем приложении, вам нужно вернуться к другому методу, потому что вы не можете зависеть от того, есть ли последнее известное местоположение.

В качестве примечания, ACCESS_MOCK_LOCATION здесь не требуется. из документов,

Позволяет приложению создавать фиктивные поставщики местоположения для тестирования.

С помощью getLastKnownLocation() вы можете получить объект Location только тогда, когда указанный провайдер местоположения активен.

В документации говорится:

Возвращает Location, указывающее данные из последнего известного исправления местоположения, полученного от данного поставщика. Это можно сделать без запуска провайдера. Обратите внимание, что это местоположение может быть устаревшим, например, если устройство было выключено и перемещено в другое место.

Если поставщик в настоящее время отключен, возвращается ноль.

Чтобы определять текущее положение, а не последнее обнаруженное, вам необходимо включить провайдеров местоположения. Это руководство должно помочь вам понять, как работать с поставщиками местоположения, такими как GPS и сеть. .

Nevermind обнаружил мою проблему! Просто нужно в службах геолокации Google на моем телефоне

Источник

Почему функция getLastKnownLocation возвращает Null на Android SDK?

Я использую android sdk на eclipse и хочу получить местоположение от устройства, поэтому я написал программу в другом классе (отличном от основного) и вызываю функцию mContext внутри этого класса из основного класса:

Проблема заключается в том, что getLongitude или getLatitude возвращают null, поэтому программа аварийно завершает работу на этой строке с этим журналом:

Что не так с этим кодом ?

PS: я читал другой вопрос с тем же названием и без тематической справки (ни один из них не имеет фактического ответа), потому что:

1-I протестируйте эту программу на реальном устройстве (не эмуляторе) с включенным и работающим GPS , но эта программа не может получить местоположение, хотя устройство получает свое местоположение раньше, и оно должно показать LastKnownLocation .

2-I дал программе ACCESS_FINE_LOCATION и ACCESS_COARSE_LOCATION разрешение.

3-I даже использует функцию, чтобы увидеть, включен ли GPS, когда я выключаю его, программа предупреждает меня.

2 ответа

У меня есть проблема, связанная с Location API. Я попробовал следующий код: LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location loc = getLastKnownLocation(LocationManager.GPS_PROVIDER); loc -это всегда null , когда вызывается getLastKnownLocation() . Что.

Я использую следующий код, чтобы получить свое текущее местоположение. Он отлично работает с помощью NETWORK_PROVIDER. Но всякий раз, когда я использую GPS_PROVIDER, он всегда возвращает null. Я знаю, что один и тот же вопрос задавался много раз, но ни один из них не решил мою проблему public.

Читайте также:  Как включить андроид после обновления

Это был глупый вопрос ,потому что это был null,потому что это был NULL, я понимаю это по комментариям к основному вопросу,мое решение состояло в том, чтобы загрузить изображение android api в менеджере sdk, запустить Google map один раз и отправить на него местоположение GPS по DDMS , а затем запустить программу.

Я попытался изменить часть своего кода, надеюсь, он работает для ваших нужд.

Вы найдете реализацию моего кода LocationsCoreModule в нижней части ответа:

Если вы хотите, чтобы приложение сразу же начало прослушивать новые местоположения GPS:

И, наконец, LocationsCoreModule:

Я читал некоторые вопросы об этом, но не совсем нашел ответ, который мне был нужен. Итак, дело в том, что у меня есть Настроенная карта, и я хочу захватить свое текущее местоположение gps. Я проверил, что мои переменные не NULL, но все же мой результат от: getLastKnownLocation(provider, false);.

В своей деятельности мне нужно получить текущее местоположение мобильного телефона с помощью gps. Я использовал следующий код: Location gpslocation; LocationManager lmanager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); gpslocation=.

Похожие вопросы:

У меня только что была эта ошибка сегодня после выпуска нового Android SDK. Всякий раз, когда я пытаюсь получить доступ к последней известной позиции через LocationManager, она создает.

Не могли бы вы объяснить, почему getLastKnownLocation всегда возвращает null? Это метод onCreate : @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState);.

Я звоню getLastKnownLocation для поставщика GPS, и он возвращает null. В документах говорится, что это может произойти, если поставщик не включен, но я знаю, что это так. Возможно ли, чтобы.

У меня есть проблема, связанная с Location API. Я попробовал следующий код: LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location loc =.

Я использую следующий код, чтобы получить свое текущее местоположение. Он отлично работает с помощью NETWORK_PROVIDER. Но всякий раз, когда я использую GPS_PROVIDER, он всегда возвращает null. Я.

Я читал некоторые вопросы об этом, но не совсем нашел ответ, который мне был нужен. Итак, дело в том, что у меня есть Настроенная карта, и я хочу захватить свое текущее местоположение gps. Я.

В своей деятельности мне нужно получить текущее местоположение мобильного телефона с помощью gps. Я использовал следующий код: Location gpslocation; LocationManager.

Я знаю, что об этом говорили много раз, но ничто не помогло мне решить проблему, что getLastKnownLocation возвращает null. Моя деятельность реализована LocationListener: public class MainActivity.

Позвольте мне начать с признания того, что есть много результатов, когда вы ищете этот конкретный вопрос. И все же, судя по этим ответам, ничего из того, что я пробовал, не работает. Иногда я.

Я пытаюсь получить информацию о местоположении, используя getLastKnownLocation , но часто получаю null . Вот что я делаю: Включите OFF location в настройках Запустите мое приложение-.

Источник

Оцените статью