我正在使用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将为空。 我使用权限访问精细位置。
我该如何解决?
答案 0 :(得分:0)
尝试requestLocationUpdates而不是getLastKnownLocation。您可以使用LocationListener来侦听位置更新。更多信息:
https://developer.android.com/reference/android/location/LocationListener.html
答案 1 :(得分:0)
试试这个......
mGoogleMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick()
{
Location myLocation = mGoogleMap.getMyLocation();
onLocationChanged(myLocation);
return false;
}
});
答案 2 :(得分:0)
我遇到了同样的问题。你的代码没问题。问题是,当你在室内时,gps不会收到信号,而使用gps提供程序的getLastKnownLocation方法将返回null。当你去户外时,你的代码应该正常工作。