自定义获取WI-FI列表及相关设置
2017-06-22 23:55
204 查看
辗转反则好长时间,转眼间自己从事android行业已经有三年了,却什么都没留下来,在这行业中奋斗,过着一个人的生活。。。。
好了,废话不多说了,上干货。
Wi-Fi在android 中是不可切分的一部分,并且是生活中不可切分的部分,一般情况下,在应用开发的时候会很少用到相关的东西,因为没有人愿意打开你的应用去设置网络连接,都是通过系统设置连接Wi-Fi,进入我们的应用,但是在某些应用中不乏缺少使用Wi-Fi的基本使用的
Wi-Fi相关的基本信息不做多讲,直接说几个常用的
1、获取Wi-Fi列表
在获取Wi-Fi列表的时候得获取Wi-Fi管理类Wif iManager
接着判断Wi-Fi是否打开
但是不得不说的是,在android6.0的时候Google工程师可能在开发的时候感觉Wi-Fi的打开或许会用到定位,所以度源码发现,要获取到Wi-Fi列表,必须打开Wi-Fi和GPS定位,缺一不可,
可以通过getScanResults()方法获取到Wi-Fi列表 此方法的返回值是一个List集合,对象是ScanResults,这个对象中包含了Wi-Fi的一些基本信息,比如SSID Wi-Fi当前选择的名称,capableitiesWi-Fi的验证方式等,具体需要的信息可以查看ScanResults源码。
2、当然我们获取到Wi-Fi列表的时候肯定需要对列表进行操作,比如当点击需要连接的Wi-Fi条目时,进行输入密码进行链接,并且不需要root手机,但是在这个过程中我们需要一个类帮助我们完成链接WifiConfiguration,这个类时对Wi-Fi的配置类,在这个类中将设置将要链接的Wi-Fi的信息
当我们配置完成后,将配置信息传递
根据返回fan值可以判断Wi-Fi是否连接成功,但是上边return的返回值,不能完美的解释是否登录成功,因为他的内部实现的是一个耗时操作,有可能在密码正确的情况下返回false,那用什么来判断连接是否成功呢?答案是广播,监听Wi-Fi是否连接成功的广播,广播的action是
接收到广播后Wi-Fi连接成功!!!在开发的过程中学习过其他人的博客,如果有相同或相似的地方,还请多多包含,
好了,废话不多说了,上干货。
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连接成功!!!在开发的过程中学习过其他人的博客,如果有相同或相似的地方,还请多多包含,
相关文章推荐
- 获取系统进程列表及其相关信息
- 各类Java heap space 解决方法,并通过java代码获取JVM的相关信息,所在操作系统的信息(包含eclipse&myeclipse的调试的内存设置)
- Android APN设置 获取APN列表
- Android APN设置 获取APN列表
- ios播放器相关(音乐列表获取)
- Gentle中的数据表实体类相关自定义属性的设置和获得
- Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
- 有谁知不知道在android模拟器上点击设置可以看到无线和网络点击无线和网络可以看 3ff8 到wi-fi...
- 设置导航栏Edit 、自定义按钮 获取当前活动的Tab索引和UIViewController
- WPS技术浅谈:Wi-Fi WPS安全设置有漏洞
- js获取fckeditor表单内容和相关fckeditor设置
- SharePoint开发错误—列表自定义表单出现“未将对象引用设置到对象的实例”
- aspnetpager 获取或设置在显示在用户自定义信息区的用户自定义HTML文本内容。
- select 设置下拉列表的选中项的值 显示当前日期 年份 月份 下拉列表获取当前日期
- DataSet&DataTable如何绑定下拉列表控件获取不重复的值,如何添加一列自定义文字,并在下拉列表控件中显示自定义文字[winform学习实例]
- 创建产品列表控件时触发自定义DataUpated事件时,设置MultiView.ActiveViewIndex无效
- 获取项目列表及项目子节点中的Object的相关信息
- javascript获取浏览器相关设置
- [Unity3D]手机3D游戏开发:关于自定义Joystick的相关设置和脚本源码
- Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)