异常日志的截图
开启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();
}
}
}