Pep*_*tal 5 android wifimanager android-wifi android-5.0-lollipop
我在应用程序中使用
setWifiApEnabled()
Run Code Online (Sandbox Code Playgroud)
来自隐藏API(通过反射访问).它在一些较旧的手机上工作(还有三星Galaxy S3,有些手机有4.4,......)但我用三星Galaxy S5测试了它,我得到了
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
...
Run Code Online (Sandbox Code Playgroud)
我正在使用类似的代码,如Android 2.2 wifi热点API或如何设置为Android WifiConfiguration.preSharedKey连接到WPA2 PSK WiFi网络,但这是一个旧的代码.
你有经验吗?你有什么建议?
PS它在某些Android 4.4设备中也不起作用(但我没有得到InvocationTargetException).
尝试这个。
ConnectivityManager cman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Method[] methods = cman.getClass().getMethods();
try
{
wifiManager.setWifiEnabled(false);
Method enableWifi = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
String ssid = " " //your SSID
String pass = " " // your Password
WifiConfiguration myConfig = new WifiConfiguration();
myConfig.SSID = ssid;
myConfig.preSharedKey = pass ;
myConfig.status = WifiConfiguration.Status.ENABLED;
myConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
myConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
myConfig.allowedProtocols.set(WifiConfiguration.Protocol.WPA);
myConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
myConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
myConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
myConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
result = (Boolean) enableWifi.invoke(wifiManager, myConfig, true);
}
catch (Exception e)
{
e.printStackTrace();
result = false;
}
Run Code Online (Sandbox Code Playgroud)
如果出现异常,请尝试将此权限添加到您的清单 android.permission.WRITE_SETTINGS
归档时间: |
|
查看次数: |
6767 次 |
最近记录: |