我不想检查是否有通过WIFI或3G的连接! 我只想验证(而不是更改!)如果启用了“使用无线网络”-CheckBox(您可以在设置>位置和安全>我的位置>这里设置的那个) 感谢名单
答案 0 :(得分:3)
RajaReddy的代码将检查是否为网络启用了Wifi。如果您想知道Wifi是否已启用定位,那么这应该做(用有用的东西替换“上下文”)
ContentResolver cr = context.getContentResolver();
boolean wifiEnabled = Settings.Secure.isLocationProviderEnabled(cr, LocationManager.NETWORK_PROVIDER);
API级别的示例代码< 8
private static boolean isWifiLocationEnabled (Context context) {
ContentResolver cr = context.getContentResolver();
String enabledProviders = Settings.Secure.getString(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if (!TextUtils.isEmpty(enabledProviders)) {
// not the fastest way to do that :)
String[] providersList = TextUtils.split(enabledProviders, ",");
for (String provider : providersList) {
if (LocationManager.NETWORK_PROVIDER.equals(provider)) {
return true;
}
}
}
return false;
}
答案 1 :(得分:2)
使用此代码
public Boolean isNetAvailable(Context con) {
try {
ConnectivityManager connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wifiInfo.isConnected()) {
return true;
}
}catch(Exception e){
e.printStackTrace();
}
return false;
}
此需要以及以下权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>