{
//热点的配置类
WifiConfiguration apConfig = new WifiConfiguration();
Method method = null;
try
{
//android 8.0关闭wifi热点
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
method = mWifiManager.getClass().getDeclaredMethod("stopSoftAp");
return (Boolean) method.invoke(mWifiManager);
}
else
{
method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
//返回热点关闭状态
return (Boolean) method.invoke(mWifiManager, apConfig, false);
}
}
catch (Exception e)
{
e.getMessage();
}
}
private boolean setWifiAp(String apName)
{
Method method = null;
try
{
//热点的配置类
WifiConfiguration apConfig = new WifiConfiguration();
//配置热点的名称(可以在名字后面加点随机数什么的)
apConfig.SSID = apName;
//不设置密码
apConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
//android 8.0开启wifi热点
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
Method configMethod = mWifiManager.getClass().getMethod("setWifiApConfiguration", WifiConfiguration.class);
boolean isConfigured = (Boolean) configMethod.invoke(mWifiManager, apConfig);
method = mWifiManager.getClass().getMethod("startSoftAp", WifiConfiguration.class);
//返回热点打开状态
return (Boolean) method.invoke(mWifiManager, apConfig);
}
else
{
//通过反射调用设置热点
method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
//返回热点打开状态
return (Boolean) method.invoke(mWifiManager, apConfig, true);
}
}
catch (NoSuchMethodException e)
{
e.getMessage();
}
}
权限配置(有可能需要其他权限):
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />