如何在 android 中设置安全热点(带密码)
How to set secured hotspot in android (with password)
我想通过配置的 ssid
和 password
设置热点,因为我想与某些设备共享它。
我在下面使用的代码对我来说工作正常,但我无法设置热点密码。
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);
}
我想通过配置的 ssid
和 password
设置热点,因为我想与某些设备共享它。
我在下面使用的代码对我来说工作正常,但我无法设置热点密码。
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);
}