【Android开发—智能家居系列】(三):手机连接WIFI模块
来源:互联网 发布:less.js下载 编辑:程序博客网 时间:2024/05/17 02:17
概述
实现连接WIFI的功能会用到一个工具类,源码可以点击链接下载。网上这些类似的工具类里的代码差不多是一样的。连接无线网主要有两个方法:
其中有一个Connect方法,还有一个connectSpecificAP方法,对于不需要密码就能链接的WIFI模块,我使用的是后者。
主要步骤
连接WIFI大致分为一下几个步骤:
【1】打开WIFI
openWifi
【2】配置网络信息
createWifiInfo返回WIFiConfig
【3】添加配置好的网络并连接
int netID = mWifiManager.addNetwork(wifiConfig);
boolean bRet = mWifiManager.enableNetwork(netID, false);
【4】判断连接是否成功
上面的enableNetWork方法返回成功并不能反映手机是否真的连接成功,所以还需要调用isConnect方法进行判断,针对自己的业务逻辑和场景,我又写了一个判断是否连接成功的方法:isWifiConnected的方法
应用
/** * 手机接入模块的WIFI网络——BLACKANTS */ private void ConnectDisplay(){ //获得消息对象 Message msg=mainHandler.obtainMessage(); //是否连接成功的一个标记 Boolean isConnected=false; //标志BLACKANTS的ScanResult是否存在,true存在,false不存在 Boolean isExist=false; //用户存放BLACKANTS的WIFI信息 ScanResult srWifiInfo=null; //声明一个用于临时存放SSID的变量 String strTempSSID; /******************以下一段代码主要是为了获得BLACKANTS的ScanResult(包括了它的SSID,BSSID,capabilities)*****************/ //扫描WIFI wifiAdmin.startScan(); //获得WIFI列表 List<ScanResult> lstWiFi= wifiAdmin.getWifiList(); //如果WIFI列表为空,则说明WIFI开关未打开,向Handler发送消息 if(lstWiFi==null || lstWiFi.size()==0){ msg.what=NotOpen; mainHandler.sendMessage(msg); return; } //如果列表存在,则对列表进行遍历 if(lstWiFi!=null & lstWiFi.size()>0){ //遍历列表,查看BLACKANTS是否存在 for(int i=0;i<lstWiFi.size();i++){ strTempSSID=lstWiFi.get(i).SSID; //如果存在,则退出For循环 if((DisplaySSID).equals(strTempSSID.trim()) ){ //修改标志位为存在 isExist=true; //将BLACKANTS的Wifi信息放入到变量srWifiInfo中 srWifiInfo=lstWiFi.get(i); break; } } } /******************以上一段代码主要是为了获得BLACKANTS的ScanResult(包括了它的SSID,BSSID,capabilities)*****************/ //默认是失败 msg.what=Failure; //如果存在,则让手机接入BLACKANTS-------------------V1.0 if(isExist){ if(wifiAdmin.connectSpecificAP(srWifiInfo)){ //判断是否连接上 if(wifiAdmin.isWifiConnected(InitActivity.this,DisplaySSID)){ msg.what=Success; } } } mainHandler.sendMessage(msg);}
附:
下载工具类(WIFIAdmin)
1 0
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
- Android开发—智能家居系列-----手机连接WIFI模块
- 【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置
- 【Android开发—智能家居系列】(一):智能家居原理
- Android开发—智能家居系列-----智能家居原理
- WIFI模块连接手机
- Linux 开发板4G转WiFi热点 手机连接热点上网(三 WiFi模块的移植及AP的建立)
- Android Wifi模块分析(三)
- Android开发—智能家居系列----UDP通信发送指令
- Android手机wifi连接问题解决!
- Android Wifi 手机连接调试
- 【Android开发—智能家居系列】(四):UDP通信发送指令
- 【Android开发—智能家居系列】(四):UDP通信发送指令
- Linux 开发板4G转WiFi热点 手机连接热点上网(二 4G模块的移植)
- 【Android开发】wifi开关与wifi连接(密码连接)
- android WIFI连接开发
- android WIFI连接开发
- JCenter下载太慢?教你修改Maven仓库地址为国内镜像
- Android事件拦截/分发/响应 机制
- linux下安装erlang
- UIView总结
- UITableViewCell的样式
- 【Android开发—智能家居系列】(三):手机连接WIFI模块
- Binary Heap
- ReactiveCocoa - iOS开发的开源框架
- 权限管理命令
- Complex Zernike多项式及矩的一些看法
- poj1765 November Rain 扫描线
- 程序员之殇-----------------------Start Play
- 单例模式的七种写法
- 三种光照模型的计算