适用于AndroidN 7.1.1,其他版本未验证
使用前记得先获取属性,访问网络,修改设备网络
1.获取热点开启状态
@SuppressLint("PrivateApi")
public boolean getHotspotEnable() {
try {
final Method methodIsWifiApEnabled = mWifiManager
.getClass()
.getDeclaredMethod("isWifiApEnabled");
return (Boolean) methodIsWifiApEnabled.invoke(mWifiManager);
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
2.获取热点信息,如果未设置可能为空
@Nullable
private WifiConfiguration getWifiApConfiguration() {
try {
final Method method = mWifiManager.getClass().getMethod(
"getWifiApConfiguration");
return (WifiConfiguration) method.invoke(mWifiManager);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
3.设置热点
/**
* apConfig.allowedKeyManagement.set(4): WifiConfiguration.WPA2_PSK = 4;
*
* @param name 热点名称
* @param password 热点密码
* @return 热点信息
*/
private WifiConfiguration createApWifiConfiguration(String name, String password) {
final WifiConfiguration apConfig = new WifiConfiguration();
apConfig.SSID = name;
apConfig.preSharedKey = password;
apConfig.allowedKeyManagement.set(4);
return apConfig;
}
/**
* 设置热点
*
* @param apConfig 热点信息,包括了名称和密码
* @param enable true:开启;false关闭
* @return true:设置成功;false:设置失败
*/
private boolean toggleHotspotInfo(WifiConfiguration apConfig, boolean enable) {
try {
//通过反射调用设置热点
final Method method = mWifiManager.getClass().getMethod(
"setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
return (Boolean) method.invoke(mWifiManager, apConfig, enable);
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
网友评论