天天看點

WiFi的顯示及WPA2_PSK加密

public void createWifiHotspot() {
        if (wifiManager.isWifiEnabled()) {
            wifiManager.setWifiEnabled(true);
        }
        WifiConfiguration config = new WifiConfiguration();
        config.SSID =WIFI_ssid;
        config.preSharedKey = WIFI_PASSWORK;
        config.hiddenSSID = false;  //是否隐藏熱點名稱  false 不掩藏
        config.allowedAuthAlgorithms
                .set(WifiConfiguration.AuthAlgorithm.OPEN);//開放系統認證
        config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
        config.allowedKeyManagement.set(4); //WifiConfiguration.KeyMgmt.WPA2_PSK,不能直接用,用代号4即可
//        config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
        config.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.TKIP);
        config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
        config.allowedPairwiseCiphers
                .set(WifiConfiguration.PairwiseCipher.CCMP);
        config.status = WifiConfiguration.Status.ENABLED;
        //通過反射調用設定熱點
        try {
            Method method = wifiManager.getClass().getMethod(
                    "setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
            boolean enable = (Boolean) method.invoke(wifiManager, config, true);
            if (enable) {
                textview.setText("熱點已開啟 SSID:" + WIFI_HOTSPOT_SSID + " password:123456789");
            } else {
                textview.setText("建立熱點失敗");
            }
        } catch (Exception e) {
            e.printStackTrace();
            textview.setText("建立熱點失敗");
        }
    }      
遇到的兩個問題以解決      
config.hiddenSSID = false;  //是否隐藏熱點名稱  false 不掩藏      
config.allowedKeyManagement.set(4); //WifiConfiguration.KeyMgmt.WPA2_PSK,不能直接用,用代号4即可      
源碼下載下傳連結 http://download.csdn.net/detail/m0_37039192/9858469      

繼續閱讀