最近想学习下Android上打开热点的方法,在网上找了好多篇相关的博客,代码基本上都是一个样子,都是几年前的老代码了,现在根本行不通。好在爬坑了一下午,终于给爬出来了。
1.下面先说一下Android开启wifi热点的基本套路。
首先需要获取到WifiManager系统服务类,获取方式如下
WifiManager mWifiManager = (WifiManager) context.getApplicationContext().getSystemService(context.WIFI_SERVICE);
由于目前安卓系统上开启wifi热点的api方法不稳定,谷歌没有向开发者开放这个方法,将其隐藏了,也就是下面这个。
setWifiApEnabled(WifiConfiguration wifiConfig, boolean enabled)
因此我们需要利用java的反射机制来调用这个方法,解释下上面的两个参数。
WifiConfiguration :配置wifi热点的一些参数,包括热点名称,密码,加密方式等
boolean :是否开启热点
public void createWifitHot(String name, String password) {
try {
//wifi和热点不能同时打开,所以先判断wifi是否打开,打开则关闭
if (mWifiManager.isWifiEnabled()) {
mWifiManager.setWifiEnabled(false);
}
//java反射机制得到Method
Method method = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
//配置热点信息
WifiConfiguration config = new WifiConfiguration();
co