问题是自我解释。在调试时,我将位置视为null。请建议进一步分类。
locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
...
// if GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
// locationManager.requestLocationUpdates(
// LocationManager.GPS_PROVIDER,
// MIN_TIME_BW_UPDATES,
// MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
在调试时我发现gpsEnabled总是返回false。 GPS在模拟器上打开
答案 0 :(得分:1)
根据代码,我假设您正在使用GPSTracker或其衍生物(您不应该破坏该代码)。如果是这样,gpsEnabled值只是告诉你它是否可以使用GPS,而不是它是否真正开启并且能够立即为你提供价值。
答案 1 :(得分:0)
您正在使用模拟器。它尚未请求位置,因此您需要致电requestLocationUpdates()
或requestSingleUpdate()
,以便存储设备的位置。
另一种方法是尝试单击模拟器右侧看起来像三个点的菜单,然后转到“位置”部分。如果你在那里输入纬度和经度,然后点击"发送",那有效吗?