- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在应用中使用
setWifiApEnabled()
来自隐藏 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)
...
我正在使用类似的代码 Android 2.2 wifi hotspot API或 How and what to set to Android WifiConfiguration.preSharedKey to connect to the WPA2 PSK WiFi network但这是一个有点旧的代码。
你有这方面的经验吗?你有什么建议?
附言它在某些 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;
}
如果出现异常,请尝试将此权限添加到您的 list 中android.permission.WRITE_SETTINGS
关于Android Lollipop - WiFi 热点 setWifiApEnabled() 获取 InvocationTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30527188/
我正在尝试使用我之前在此处看到的代码将我的 Android 设备设置为接入点: WifiManager wifi = (WifiManager) getSystemService(Context.WI
我在应用中使用 setWifiApEnabled() 来自隐藏 API(通过反射访问)。在一些旧手机上它可以工作(也适用于三星 Galaxy S3,一些 4.4 的手机,......)但我用三星 Ga
我引用了Android 8.0开启热点的代码,可以。但是我不知道如何禁用它 @RequiresApi(api = Build.VERSION_CODES.O) private void turnOnH
我是一名优秀的程序员,十分优秀!