在我的应用程序中,我尝试使用networkProvider搜索android设备的粗略位置。我只在我的位置管理器中使用networkProvider,但如果我不打开GPS传感器,它将不起作用。Android GPS网络提供者不工作
无论GPS传感器开启还是关闭,网络提供者是否应该给出一个粗略的位置?
这是我的代码。
public Location getLocation() {
try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
if(isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
Log.e("Network","suc");
else
Log.e("Network", "fail");
if (!isNetworkEnabled) {
} else {
this.isGetLocation = true;
if (isNetworkEnabled) {
Log.e("GpsInfo", "isNetworkEnabled true");
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
Log.e("GpsInfoClass", "Location manager not NULL");
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
lat = location.getLatitude();
lon = location.getLongitude();
Log.e("GpsInfoClass", lon + ", " + lat);
}else{
Log.e("GpsInfoClass", "Location NULL");
}
}else{
Log.e("GpsInfo", "Location Manager is null");
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
在我的日志中,它打印网络(标记)失败(日志)。
这是什么意思是说,
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)
总是返回false,如果GPS传感器处于关闭状态。这是为什么发生?我错过了如何获取粗略位置?