asysbang

 找回密码
 立即注册
查看: 4017|回复: 0
打印 上一主题 下一主题

Wifi热点

[复制链接]

513

主题

2

好友

6404

积分

管理员

Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

最佳新人 活跃会员 热心会员 推广达人 宣传达人 灌水之王 突出贡献 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-7-17 14:52:26 |只看该作者 |倒序浏览
*****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的配置参数





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|aSys-帮 ( 京ICP备13033689号 )

GMT+8, 2024-10-5 13:45 , Processed in 0.055406 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部