-1

ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATON оба включены в манифест. Кроме того, в деятельности являются:Недостаток точности GPS, вызывающий нулевой указатель

import android.location.Location; 
import android.location.LocationManager; 

У меня есть прослушиватель нав ящик со следующим классом

private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     if (location != null) 
     { 
      final double longitude = location.getLongitude(); 
      final double latitude = location.getLatitude(); 
     } 

    selectItem(position); 
    } 
} 

этого, location = null, и, таким образом, потерпит неудачу на location.getLongitude();. Я могу, конечно, избегать этого с if (location != null), но я хочу найти lat и long.

Почему местоположение всегда равно нулю?

+1

Вы ориентируетесь на API 23 или выше? Где вы [запрашиваете разрешение во время выполнения] (https://developer.android.com/training/permissions/requesting.html)? – ianhanniballake

ответ

1

Поиск местоположения - непростая задача на стороне оборудования. Вы не можете сообщить устройству, что я хочу знать свое местоположение, поэтому дайте его мне прямо сейчас! Он должен наблюдать некоторые данные с GPS-спутников, если снаружи, с четкой видимостью, в противном случае он использует другие доступные параметры, такие как Wi-Fi. До тех пор пока ваше устройство не найдет подходящее место, вы должны подождать. Я рекомендую вам наблюдать за событием onLocationChanged и обновлять список в случае возникновения этого события. Также полезно использовать условие null, пока оно не обнаружит ваше местоположение.

+0

У нас были тяжелые метели в течение последних нескольких дней. Может ли это быть причиной? – Iorek

+0

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

+0

Да, решение: http://stackoverflow.com/questions/9873190/my-current-location-always-returns-null-how-can-i-fix-this. Моды прыгают с пистолетом, закрывая его – Iorek

Смежные вопросы