¿Cómo crear un punto de acceso WPA personalizado con ssid y contraseña en Android?

Estoy usando el siguiente código para crear la configuración de punto de acceso Wifi. Puedo crear la configuración de Hotspot y puedo habilitarla. pero he dado configuración para WPA-PSK, pero siempre se tomó como red ABIERTA.

public boolean setHotSpot(String SSID,String passWord){
Method[] mMethods = mWifiManager.getClass().getDeclaredMethods();

    for(Method mMethod: mMethods){

        if(mMethod.getName().equals("setWifiApEnabled")) {
            WifiConfiguration netConfig = new WifiConfiguration();
             netConfig.SSID = SSID ;
                netConfig.preSharedKey = passWord;
                netConfig.hiddenSSID = true;
                netConfig.status = WifiConfiguration.Status.ENABLED;
                netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                netConfig.allowedKeyManagement.set(4);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);

            try {              
                mMethod.invoke(mWifiManager, netConfig,true);
                mWifiManager.saveConfiguration();
                return true;

            } catch (Exception e) {
                e.printStackTrace();
                CommonUtil.log(TAG,"Exception : "+e.getLocalizedMessage());
            }
        }
    }
return false; 

}

Después de ejecutar esta aplicación, el punto de acceso se habilitó. Por favor revise la imagen de abajo.

¿Cómo configurar la configuración wifi WPA_PSK en la aplicación de Android?

Según la respuesta a continuación, he modificado el código a continuación.

public boolean setHotSpot(String SSID, String passWord) {
    boolean apstatus;
    WifiConfiguration netConfig = new WifiConfiguration();
    if (passWord == "") {
        netConfig.SSID = SSID;
        netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
        netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
        netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
    } else {
        netConfig.SSID = SSID;
        netConfig.preSharedKey = passWord;
                /*netConfig.hiddenSSID = true;
                netConfig.status = WifiConfiguration.Status.ENABLED;
                netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                netConfig.allowedKeyManagement.set(4);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
                netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
                netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
                netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);*/
        netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
        netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
        netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
        netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
    }

    try {
        Method setWifiApMethod = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
        //setWifiApMethod.invoke(mWifiManager, previousConfigurations, false);
        //Thread.sleep(2000);
        apstatus = (Boolean) setWifiApMethod.invoke(mWifiManager, netConfig, true);
    } catch (Exception e) {
        CommonUtil.log(TAG, e.getMessage());
        return false;
    }
    return apstatus;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta