.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为真
.isProviderEnabled(LocationManager.NETWORK_PROVIDER) is always true in Android
我不知道为什么,但我的变量 isNetowrkEnabled
总是 return 正确。我的设备上是否启用互联网并不重要。
这是我的 GPSTracker
class:
public class GPSTracker extends Service implements LocationListener{
private final Context mContext;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location; // location
protected LocationManager locationManager;
public GPSTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
if (isNetworkEnabled) {
System.out.println("Network enabled");
} else {
System.out.println("Network disabled");
}
}
}
你知道这段代码可能有什么问题吗?
您的代码很可能没有任何问题。是否启用提供程序取决于设置应用程序的位置部分(或设备制造商在其他地方提供的等效控件,例如在应用程序小部件中)。只要未在“设置”中禁用网络提供商,isProviderEnabled(LocationManager.NETWORK_PROVIDER)
就会 return true
。 启用 的提供者与提供者是否 工作 没有任何关系,因为你没有网络连接。
试试这个..
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
return true;
}
else
{
return false;
}
我不知道为什么,但我的变量 isNetowrkEnabled
总是 return 正确。我的设备上是否启用互联网并不重要。
这是我的 GPSTracker
class:
public class GPSTracker extends Service implements LocationListener{
private final Context mContext;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location; // location
protected LocationManager locationManager;
public GPSTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
if (isNetworkEnabled) {
System.out.println("Network enabled");
} else {
System.out.println("Network disabled");
}
}
}
你知道这段代码可能有什么问题吗?
您的代码很可能没有任何问题。是否启用提供程序取决于设置应用程序的位置部分(或设备制造商在其他地方提供的等效控件,例如在应用程序小部件中)。只要未在“设置”中禁用网络提供商,isProviderEnabled(LocationManager.NETWORK_PROVIDER)
就会 return true
。 启用 的提供者与提供者是否 工作 没有任何关系,因为你没有网络连接。
试试这个..
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
return true;
}
else
{
return false;
}