你可以打电话
private boolean setWifiApEnabled(WifiConfiguration wifiConfig, booleanenabled);
使用反射:)
在
WifiManager使用反射获取
WifiManager声明的方法之后,查找该方法名称
setWifiApEnabled并通过
WifiManager对象调用它
这些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会将我驱动为空配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)