如何在Android上启用“使用无线网络”以编程方式检查?

时间:2012-02-15 10:49:49

标签: java android connection wifi

我不想检查是否有通过WIFI或3G的连接! 我只想验证(而不是更改!)如果启用了“使用无线网络”-CheckBox(您可以在设置>位置和安全>我的位置>这里设置的那个) 感谢名单

2 个答案:

答案 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>