如何在 android 中设置安全热点(带密码)

How to set secured hotspot in android (with password)

我想通过配置的 ssidpassword 设置热点,因为我想与某些设备共享它。 我在下面使用的代码对我来说工作正常,但我无法设置热点密码。

if (wm.isWifiEnabled()) {
                    wm.setWifiEnabled(false);
                }
                WifiConfiguration wifiCon = new WifiConfiguration();
                wifiCon.SSID = "UsmanAp";
                wifiCon.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
                wifiCon.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
                wifiCon.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
                wifiCon.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
                try{
                    Method setWifiApMethod = wm.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
                    boolean apstatus=(Boolean) setWifiApMethod.invoke(wm, wifiCon,true);
                    Method isWifiApEnabledmethod = wm.getClass().getMethod("isWifiApEnabled"); 
                    while(!(Boolean)isWifiApEnabledmethod.invoke(wm)){};
                    Method getWifiApStateMethod = wm.getClass().getMethod("getWifiApState"); 
                    int apstate=(Integer)getWifiApStateMethod.invoke(wm);
                    Method getWifiApConfigurationMethod = wm.getClass().getMethod("getWifiApConfiguration");
                    wifiCon=(WifiConfiguration)getWifiApConfigurationMethod.invoke(wm);
                } catch (Exception e) {
                    Log.e(this.getClass().toString(), "", e);
                }

在上面的代码中添加什么设置热点密码

-乌斯曼

您没有设置 preSharedKey,这是 WPA 的密码。此外,allowedKeyManagement 应设置为 WifiConfiguration.KeyMgmt.WPA_PSK.

WifiConfiguration wifiCon = new WifiConfiguration();
wifiCon.SSID = "UsmanAp";
wifiCon.preSharedKey = "password";
wifiCon.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED);
wifiCon.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiCon.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
wifiCon.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
try
{
    Method setWifiApMethod = wm.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
    boolean apstatus=(Boolean) setWifiApMethod.invoke(wm, wifiCon,true);
} 
catch (Exception e) 
{
    Log.e(this.getClass().toString(), "", e);
}