辗转反则好长时间,转眼间自己从事android行业已经有三年了,却什么都没留下来,在这行业中奋斗,过着一个人的生活。。。。

好了,废话不多说了,上干货。

Wi-Fi在android 中是不可切分的一部分,并且是生活中不可切分的部分,一般情况下,在应用开发的时候会很少用到相关的东西,因为没有人愿意打开你的应用去设置网络连接,都是通过系统设置连接Wi-Fi,进入我们的应用,但是在某些应用中不乏缺少使用Wi-Fi的基本使用的

Wi-Fi相关的基本信息不做多讲,直接说几个常用的

1、获取Wi-Fi列表

在获取Wi-Fi列表的时候得获取Wi-Fi管理类Wif iManager 

wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
接着判断Wi-Fi是否打开

if (!wifiManager.isWifiEnabled()) {        wifiManager.setWifiEnabled(true);}
但是不得不说的是,在android6.0的时候Google工程师可能在开发的时候感觉Wi-Fi的打开或许会用到定位,所以度源码发现,要获取到Wi-Fi列表,必须打开Wi-Fi和GPS定位,缺一不可,

      wifiManager.startScan();//开始扫描
可以通过getScanResults()方法获取到Wi-Fi列表 此方法的返回值是一个List集合,对象是ScanResults,这个对象中包含了Wi-Fi的一些基本信息,比如SSID Wi-Fi当前选择的名称,capableitiesWi-Fi的验证方式等,具体需要的信息可以查看ScanResults源码。

list = wifiManager.getScanResults();

2、当然我们获取到Wi-Fi列表的时候肯定需要对列表进行操作,比如当点击需要连接的Wi-Fi条目时,进行输入密码进行链接,并且不需要root手机,但是在这个过程中我们需要一个类帮助我们完成链接WifiConfiguration,这个类时对Wi-Fi的配置类,在这个类中将设置将要链接的Wi-Fi的信息

WifiConfiguration wc = new WifiConfiguration();wc.SSID = "\"" + ssid + "\""; Wi-Fi名称wc.preSharedKey = "\"" + mWifiPwd.getText().toString().trim() + "\""; //密码wc.status = WifiConfiguration.Status.ENABLED;//....其他配置wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
当我们配置完成后,将配置信息传递

int NetId = mWifiManager.addNetwork(config);return mWifiManager.enableNetwork(NetId, true);
根据返回fan值可以判断Wi-Fi是否连接成功,但是上边return的返回值,不能完美的解释是否登录成功,因为他的内部实现的是一个耗时操作,有可能在密码正确的情况下返回false,那用什么来判断连接是否成功呢?答案是广播,监听Wi-Fi是否连接成功的广播,广播的action是
android.bluetooth.adapter.action.SCAN_MODE_CHANGED

接收到广播后Wi-Fi连接成功!!!在开发的过程中学习过其他人的博客,如果有相同或相似的地方,还请多多包含,

更多相关文章

  1. Android之判断设备网络连接状态,并判断连接方式
  2. 获取Android设备唯一标识码以及其他信息
  3. Android基础知识复习之打开照相机拍照并获取照片
  4. Android相机、相册获取图片显示并保存到SD卡
  5. 【android】利用ContentObserver监听短信来获取验证码
  6. Android(安卓)屏蔽蓝牙连接时的首次配对系统弹窗
  7. [Android]快递查询——API的简单应用
  8. ReactNative学习笔记之调用原生模块(进阶)之Callback、Promise使用
  9. 个人解读Activity之四-Part1

随机推荐

  1. HTML标签与属性
  2. 2022年0707结构伪类与状态伪类与盒模型常
  3. css基础:链接形式及选择器的用法
  4. 跟着大牛学PHP--CSS样式和选择器
  5. css自定义样式来源选择器与选择器的权重
  6. 自定义样式的来源与优先级与常用选择器与
  7. CSS样式来源、优先权重和实例
  8. 有感于android安装的简单
  9. Android(安卓)targetSdkVersion你真的了
  10. Kotlin开发环境搭建及第一行KL代码