0

我正在使用 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 将为空。我使用权限 ACCESS FINE LOCATION。

我该如何解决?

4

3 回答 3

0

尝试这个.....

   mGoogleMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {

                    @Override
                    public boolean onMyLocationButtonClick()
                        {

                            Location myLocation = mGoogleMap.getMyLocation();
                            onLocationChanged(myLocation);
                            return false;
                        }
                });
于 2014-02-27T06:30:17.787 回答
0

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

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

参考链接

于 2013-03-19T08:02:57.907 回答
0

我遇到同样的问题。你的代码没问题。问题是当您在室内时 gps 没有收到信号,并且带有 gps 提供程序的 getLastKnownLocation 方法将返回 null。当你去户外时,你的代码应该可以正常工作。

于 2015-11-05T12:53:40.397 回答