android开发 打开WiFi热点出现java.lang.reflect.InvocationTargetException 异常

8988CVB 2017-05-25 05:54:44
异常日志的截图


开启WiFi热点的代码类 这个异常应该是 invoke()抛出的
为测试我是自己mainactivity 的oncreate()里面调用createAp的
package com.example.test;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
import android.widget.Toast;


public class WifiApAdmin{
private WifiManager wifi;
private String ssid="test";
private String pass="123456";
public WifiApAdmin(Context context){
wifi=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
}

public void createAp(Activity activity){
if(wifi.isWifiEnabled()){
wifi.setWifiEnabled(false);
}
WifiConfiguration ap=new WifiConfiguration();
ap.SSID=ssid;
ap.preSharedKey=pass;
ap.hiddenSSID=true;
ap.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN);
ap.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
ap.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
ap.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
ap.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
ap.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
ap.status=WifiConfiguration.Status.ENABLED;
try{
Method method=wifi.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class,Boolean.TYPE);
boolean enable=(Boolean)method.invoke(wifi,ap,true);
if(enable){
//成功
Toast.makeText(activity, "成功", Toast.LENGTH_SHORT).show();
}else{
//失败
Toast.makeText(activity, "失败", Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
...全文
1574 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝柏青 2017-12-12
  • 打赏
  • 举报
回复
Method enableWifi = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class); WifiConfiguration myConfig = new WifiConfiguration(); myConfig.SSID = ssid ; myConfig.preSharedKey = password ; 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); 另外加上权限 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
8988CVB 2017-12-11
  • 打赏
  • 举报
回复
好久了 看一下代码 有点印象 好像是 开启热点的设置参数设置 不对 不知道后来怎么解决的 好像 也是改参数就好 唉 以后每解决一个bug 应该写注释 记录一下
8988CVB 2017-12-11
  • 打赏
  • 举报
回复
好久 发帖子了 好久发的问题了 现在都忘记 怎么解决的了 看看先
司小三石 2017-10-24
  • 打赏
  • 举报
回复
这个问题困扰好久,没有大神遇到吗。急问
abrams 2017-07-20
  • 打赏
  • 举报
回复
你的问题解决了吗?我也碰到这样的问题了,我起先以为是权限问题,但是设置了还是不对

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧