我正在尝试访问用户设备的GPS位置,似乎无处可去。
在我的课程中,我有以下代码,它会检查GPS提供程序是否已启用,然后尝试获取用户上次知道的位置。
它认为GPS提供商为enabled
,但当我尝试获取最后一个已知位置时,我得不到任何内容,myLocation
始终返回null
。
// try to get GPS location
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (gpsEnabled) {
//request for location updates
LocationListener locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 0, locationListener);
Location myLocation;
myLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (myLocation != null) {
//we have a location!!
}
} // end if gps enabled
以下是LocationListener
public class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location location) {
location.getLatitude();
location.getLongitude();
// TODO get accuracy, direction and speed.
// this method is unfinished...
}
}
这是清单文件的权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
显然,我有一些东西可以忽略以获取设备位置..为什么最后一个已知位置始终返回null?
答案 0 :(得分:1)
一些事情:
希望它有所帮助。