以编程方式在Android中创建WPA2 PSK接入点

Usm*_*iaz 2 android android-wifi

我想通过以下配置以编程方式在android中创建Access Point. AccessPointName :SomeName Security:WPA2 PSK Password:SomeKey

我怎样才能做到这一点?问候

Viv*_*vek 18

我曾经遇到过这个问题.要创建WPA2 PSK访问点,需要使用WPA2 PSK参数填充WifiConfiguartion对象.但是我找不到设置KeyManagement为的方法WPA2_PSK.有只为选择WPA_PSK,IEEE8021X,WPA_EAPNONE.然后我读了WifiConfiguration.java的android源代码.我能够发现确实有选项WPA2_PSK,但它被隐藏了@hide,但它是int有价值的4.所以我所做的就是通过4wifiConfiguration.allowedKeyManagement.set(4);.见下面的代码.

WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "SomeName";
wifiConfiguration.preSharedKey = "SomeKey";
wifiConfiguration.hiddenSSID = false;
wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfiguration.allowedKeyManagement.set(4);
wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
Run Code Online (Sandbox Code Playgroud)

最后wifiConfiguration使用accesspoint传递如下

WifiApControl apControl = WifiApControl.getInstance(context);

apControl.setEnabled(wifiConfiguration, true);
Run Code Online (Sandbox Code Playgroud)

或者你可以wifiConfiguration在java中使用它与反射技术来激活访问点.