asysbang
标题:
Wifi热点
[打印本页]
作者:
admin
时间:
2015-7-17 14:52
标题:
Wifi热点
*****WIFI热点和WIFI直连是2个不同的功能
热点相当于创建一个路由器
直连是p2p的和蓝牙连接一样
先研究“设置”里面wifi热点相关的代码
res/xml/tether_prefs.xml 这个是热点设置界面的布局,包含usb wifi和bluetooth
对应的java文件是TetherSettings
wifi热点是里面的WifiApEnabler
public boolean onPreferenceChange(Preference preference, Object value) {
boolean enable = (Boolean) value;
if (enable) {
startProvisioningIfNecessary(WIFI_TETHERING);
} else {
mWifiApEnabler.setSoftapEnabled(false);
}
return false;
}
先isProvisioningNeeded 做判断,然后调用startTethering 开启
mWifiApEnabler.setSoftapEnabled(true);
先通过int wifiState = mWifiManager.getWifiState();获得当前wifi状态,如果是wifi开启或开启中的状态,则关闭wifi并保存wifi状态
普通应用要想调用只能通过反射
WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
try {
Class<?> forName = Class.forName("android.net.wifi.WifiManager");
Method declaredMethod = forName.getDeclaredMethod("setWifiApEnabled", new Class[]{WifiConfiguration.class,boolean.class});
declaredMethod.invoke(wm, new Object[]{null, true});
} catch (Exception e) {
e.printStackTrace();
}
需要添加<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
mWifiManager.getWifiApConfiguration(); 可以获得ap的配置参数
欢迎光临 asysbang (http://asysbang.com/)
Powered by Discuz! X2.5