实现自动WiFi连接
1,想实现连接到指定的WiFi网络吗?
其实这个不是很难,可这个一直困扰了我很长时间,今天终于找到了原因,因为,我之前的配置就是错误的,所以,导致无法连接到指定的无线网络。
2,实现方法:
请参考以下的代码(特别是有密码与没有密码的部分,他们的配置都不尽相同,所以,一定得细心):
WifiConfiguration config = new WifiConfiguration(); config.allowedAuthAlgorithms.clear(); config.allowedGroupCiphers.clear(); config.allowedKeyManagement.clear(); config.allowedPairwiseCiphers.clear(); config.allowedProtocols.clear(); config.SSID = "\"" + SSID + "\""; if(Type == NOPASS) { config.wepKeys[0] = ""; config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; } if(Type == WEP) { config.preSharedKey = "\""+Password+"\""; config.hiddenSSID = true; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); config.wepTxKeyIndex = 0; } if(Type == WPA) { config.preSharedKey = "\""+Password+"\""; config.hiddenSSID = true; config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); config.allowedProtocols.set(WifiConfiguration.Protocol.WPA); config.status = WifiConfiguration.Status.ENABLED; }
3,下面是实现的具体关键代码(仅用了没有密码的实现方式,其他的可以自己去实现):
List<ScanResult> sRet = mWifi.getScanResults();for (int i=0; i<sRet.size(); i++){ScanResult retS = sRet.get(i); txt.append("resT: " + retS.SSID +" " + retS.BSSID + "\n");Log.d(tag, "resT: " + retS.SSID +" " + retS.BSSID);if (retS.SSID.equalsIgnoreCase("Shuttled")){txt.append("Found: " + retS.SSID +" " + retS.BSSID + "\n");WifiConfiguration wc = new WifiConfiguration();wc.allowedAuthAlgorithms.clear();wc.allowedGroupCiphers.clear();wc.allowedKeyManagement.clear();wc.allowedProtocols.clear();wc.allowedPairwiseCiphers.clear();wc.SSID = "\""+retS.SSID+"\"";wc.wepKeys[0]="";wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);wc.wepTxKeyIndex = 0;int netID = mWifi.addNetwork(wc); // add network
// txt.append("addNetwork: "+ Integer.toString(netID) +"\n");
// mWifi.saveConfiguration();if(mWifi.enableNetwork(netID, true)) // enable network{txt.append("enableNetwork: true\n");}
4,在StackOverflow上,有位高人,让通过广播来实现(通知扫描完成事件),下面是实现代码:
private BroadcastReceiver scanResultsReceiver = new BroadcastReceiver(){@Overridepublic void onReceive(Context arg0, Intent intent) {String action = intent.getAction();if (action.equals("android.net.wifi.SCAN_RESULTS")){do connect?????}}/* 注册事件时,需要添加行为 */IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("android.net.wifi.SCAN_RESULTS");registerReceiver(scanResultsReceiver, intentFilter);
5,完成,将近快10月了,才知道怎么去弄,也许是关注度不够吧。唉~~~,加油。。。
实现自动WiFi连接相关推荐
- 树莓派自动wifi连接脚本,先解决no wirless interfaces found
树莓派镜像安装后,发现无法连接wifi网络,显示"no wirless interfaces found".树莓派换了环境后如何实现使用脚本自动进行wifi连接.针对这个两个问题解 ...
- 在命令行中管理 Wifi 连接
在命令行中管理 Wifi 连接 无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的.这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用:第二,如 ...
- Android:WiFi连接之一
WIFI连接相关知识 感慨 WIFI连接的相关权限 打开.关闭WIFI 打开WiFi: 关闭WiFi: WiFi连接 输入WiFi名称.密码实现连接 断开WIFI连接 感慨 最近学习安卓WiFi连接, ...
- Android手机用wifi连接adb调试的方法
https://www.jianshu.com/p/dc6898380e38 0x0 前言 Android开发肯定要连接pc的adb进行调试,传统的方法是用usb与pc进行连接,操作简单即插即用,缺点 ...
- 使用dos下的命令行,也可以完成wifi连接。
使用dos下的命令行,也可以完成wifi连接. 具体如下: 首先了解无线网络的相关参数输入如下命令: ->netsh wlan 下列指令有效: 此上下文中的命令: ? ...
- linux命令行模式连接网络,在Linux环境命令行中实现Wifi 连接的方法
无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的. 这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用:第二,如果您是从命令行中来安装系统的, ...
- 富士相机设置传原图_【富士 X-E3 无反相机使用体验】蓝牙|WIFI|连接|图像传输_摘要频道_什么值得买...
富士 X-E3 无反相机使用体验(蓝牙|WIFI|连接|图像传输) 一,蓝牙和WIFI 特别说明:蓝牙和wifi连接的稳定性,和手机有很大的关系,我使用的是锤子坚果Pro手机,官方应用市场里没有富士的 ...
- 【Android开发】wifi开关与wifi连接(密码连接)
过放荡不羁的生活,容易得像顺水推舟,但是要结识良朋益友,却难如登天.-- 巴尔扎克 本文demo来自网络,找了好久找到的,后面自己做了些许修改,这里对源码解析,愧于忘记哪里出来了,感谢作者! 接下来就 ...
- Android 收银机Wifi 连接厨房厨单打印机
Android 收银机Wifi 连接厨房厨单打印机 说明 第一次集成热敏打印机,对此相关知识为零,以快速接入为目的. 这里主要记录说明在集成过程中遇到的问题以及排查解决的办法.完整可用Android ...
最新文章
- python verilog顶层连线,如何在Verilog中连接两个模块?
- 实战项目:考勤系统的需求分析
- 开源圆桌 QA 集锦
- python wxpython_python GUI wxPython
- Android7.0,剪裁后提示“无法保存经过裁剪的图片”
- 39个必知必会的SQL 性能调优方法
- JVM原理及调优--网页链接收藏
- ~~线性筛法求素数(附模板题)
- redis主线程阻塞的情形
- 郭克华老师java视频教程下载地址
- html5验证码制作,Html5生成验证码的示例代码
- Word2Vec模型配置参数
- discuz模板介绍
- 告别飘云!飘云QQ核心技术人员正式声明退出开发[含全文]
- python unit test什么意思_python中的unittest有什么作用
- 对于TextView中设置艺术字体
- NR/5G - 系统消息变更
- react二级路由配置正确不显示页面的问题解决
- 苹果授权登录绑定手机号被拒绝
- Kotlin - 改良迭代器模式
热门文章
- 基础版微信模板消息开发详解,附代码PHP
- FineReport之localhost拒绝了我们的连接请求
- java手机教程_Java手机基础教程 (普通高等教育“十二五”规划教材(动漫游戏类))...
- C语言中四种取整方式、取余/取模的运算以及负数取模的问题
- 软件工程课堂作业(十六)——找“1”的个数
- Java中Xml解析详解 DOM、SAX、JDOM、DOM4J
- python毕业论文开题报告_本科毕业论文开题报告怎么写-如何写毕业设计的开题报告?...
- Android模拟器的下载与安装(Windows)
- iPhone/iPad屏幕投屏镜像到PC或Mac上面教程分享
- Qt Q_UNUSED使用