我需要在 Android 2.2 (Froyo) 中进行什么 API 调用来创建 Wifi 热点(如网络共享和便携式热点设置项中所示)。
您可以致电
private boolean setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled);
使用反射:)
得到后WifiManager
使用反射来得到WifiManager
声明的方法,查找该方法名称setWifiApEnabled
并通过调用它WifiManager
object
这些 API 被标记为 @hide,因此目前您无法直接使用它们,但它们出现在 WifiManager 的 AIDL 上,因此可以访问它们!
一个例子可以是:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Method[] wmMethods = wifi.getClass().getDeclaredMethods();
for(Method method: wmMethods){
if(method.getName().equals("setWifiApEnabled")){
WifiConfiguration netConfig = new WifiConfiguration();
netConfig.SSID = "\"PROVAAP\"";
netConfig.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
netConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
netConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
netConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
netConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
try {
method.invoke(wifi, netConfig,true);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
它可以工作,但我无法用自己的配置更改当前配置,并且获取活动 AP 的当前 WifiConfiguration 会将我带到空配置。为什么?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)