zoukankan      html  css  js  c++  java
  • 【Android开发—智能家居系列】(三):手机连接WIFI模块

    目录(?)[+]

    概述

      实现连接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)

     
  • 相关阅读:
    Apache Tomcat的安装与配置
    2007年东软校园招聘笔试题(山东大学)
    成功修复U盘,狂喜中~哈哈哈!!!
    检测和修复U盘的一般过程(一、软检测篇)
    在 hp3172宽屏笔记本上安装windowsXP+solaris10 双系统(1)--环境准备篇
    递归法查找假硬币
    把ppt转换为word的一段脚本
    2007年11月神州数码软件工程师(网络公司)招聘笔试题目
    不能正常使用oracle的解决办法(Oracle10g Express 版)
    光驱弹不出来怎么办?光驱弹不出来的简易解决办法。
  • 原文地址:https://www.cnblogs.com/ldq2016/p/6774176.html
Copyright © 2011-2022 走看看