admin管理员组

文章数量:1570786

        config.allowedGroupCiphers

                .set(WifiConfiguration.GroupCipher.WEP104);

        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);

        config.wepTxKeyIndex = 0;

    } else if (type == TYPE_WPA) {   // WPA加密

        config.preSharedKey = "\"" + password + "\"";

        config.hiddenSSID = true;

        config.allowedAuthAlgorithms

                .set(WifiConfiguration.AuthAlgorithm.OPEN);

        config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);

        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);

        config.allowedPairwiseCiphers

                .set(WifiConfiguration.PairwiseCipher.TKIP);

        // config.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

        config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);

        config.allowedPairwiseCiphers

                .set(WifiConfiguration.PairwiseCipher.CCMP);

        config.status = WifiConfiguration.Status.ENABLED;

    }



    return config;

}



//检测该SSID是否已存在

private WifiConfiguration IsExsits(String SSID) {

    List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();

    for (WifiConfiguration existingConfig : existingConfigs) {

        if (existingConfig.SSID.equals("\"" + SSID + "\"")) {

            return existingConfig;

        }

    }

    return null;

}



// 打开WIFI

public void openWifi() {

    if (!mWifiManager.isWifiEnabled()) {

        mWifiManager.setWifiEnabled(true);

    }

}



// 关闭WIFI

public void closeWifi() {

    if (mWifiManager.isWifiEnabled()) {

        mWifiManager.setWifiEnabled(false);

    }

}

}


  

  



最后,我们得加上处理wifi相应的权限。  



<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

  

好了,是不是很简单。demo下载地址  [**点我下载。**]( )



最后的思考:  

  

其实我也在想这么一个需求,既然能识别,那也得加上一键生成我的wifi二维码功能啊,结合前篇的二维码生成,这样就实现wifi共享了,免得别人问我密码。但是,但是这个目前实现不了,准确的说是在非root功能上的手机实现不了,因为这就等效于“怎么获取连接wifi的密码”的问题了,假如我们可以通过代码能获取到密码的话,那么按照格式就可以自动生成了。但是通过收集资料,发现这个实现不了,想一下,目前市场上存在的wifi万能钥匙一类的app在使用时,如果要显示密码的话,就得获取root权限,所以说这个是暂时没有办法解决的。当然如果你有好的、通用的解决方法,欢迎留言给个思路。



  



\======2018.1.18更新=====



最近回过头来,看这些问题,突然发现有部分人反应6.0以上系统,这个方法就有时不行,经过我这2天的初步了解,算找到了一部分的原因。原来是Android系统在6.0以上的系统对wifi模块做了修改。以下是官方的原文:



Wi-Fi and Networking Changes  

1、This release introduces the following behavior changes to the Wi-Fi and networki

本文标签: 二维码androidwifi