2013-03-19 7 views
0

Я использую GPS. Это мой код.getLastKnownLocation return NULL

public void onCreate() 
{ 
    super.onCreate(); 

    mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Location mLocation; 

    if(mLocationManager.isProviderEnabled((LocationManager.GPS_PROVIDER))) 
    { 
     mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER , 2000, 10, myLocationListener); 
     mLocation = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     Temp = updateWithNewLocation(mLocation); 
     Value.city = Temp; 
     Temp = ""; 
     LogShow("DataClass.City = " + Value.city); 
     LogShow("GPS_PROVIDER enable"); 
    } 
    } 

Я не знаю, почему getLastKnownLocation возвращает NULL. Поэтому updateWithNewLocation будет пустым. Я использую разрешение ACCESS FINE LOCATION.

Как его решить?

+1

'getLastKnownLocation()' будет возвращать null, если считает, что местоположение слишком устарело –

+0

getLastKnownLocation() может быть устаревшим, поскольку @raghav сказал, например, если устройство было отключено и перемещено в другое место. должен захватить новое местоположение, запросив новое обновление местоположения .. Также я бы предложил рассмотреть вашу точность и ограничение батареи, чтобы либо продолжать работу с NETWORK_PROVIDER, а не GPS_PROVIDER –

ответ

0

Вместо getLastKnownLocation попробуйте requestLocationUpdates. Вы можете использовать LocationListener для прослушивания обновлений местоположения. Более подробную информацию:

https://developer.android.com/reference/android/location/LocationListener.html

Refrence Link

+0

OK. Я использую приемник местоположения и обновление с помощью getFromLocaion. –

0

попробовать это .....

mGoogleMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() { 

        @Override 
        public boolean onMyLocationButtonClick() 
         { 

          Location myLocation = mGoogleMap.getMyLocation(); 
          onLocationChanged(myLocation); 
          return false; 
         } 
       }); 
0

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

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