getLastKnownLocation返回NULL

时间:2013-03-19 07:53:46

标签: android

我正在使用GPS。这是我的代码。

   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将为空。 我使用权限访问精细位置。

我该如何解决?

3 个答案:

答案 0 :(得分:0)

尝试requestLocationUpdates而不是getLastKnownLocation。您可以使用LocationListener来侦听位置更新。更多信息:

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

Refrence Link

答案 1 :(得分:0)

试试这个......

   mGoogleMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {

                    @Override
                    public boolean onMyLocationButtonClick()
                        {

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

答案 2 :(得分:0)

我遇到了同样的问题。你的代码没问题。问题是,当你在室内时,gps不会收到信号,而使用gps提供程序的getLastKnownLocation方法将返回null。当你去户外时,你的代码应该正常工作。