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连接相关推荐

  1. 树莓派自动wifi连接脚本,先解决no wirless interfaces found

    树莓派镜像安装后,发现无法连接wifi网络,显示"no wirless interfaces found".树莓派换了环境后如何实现使用脚本自动进行wifi连接.针对这个两个问题解 ...

  2. 在命令行中管理 Wifi 连接

    在命令行中管理 Wifi 连接 无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的.这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用:第二,如 ...

  3. Android:WiFi连接之一

    WIFI连接相关知识 感慨 WIFI连接的相关权限 打开.关闭WIFI 打开WiFi: 关闭WiFi: WiFi连接 输入WiFi名称.密码实现连接 断开WIFI连接 感慨 最近学习安卓WiFi连接, ...

  4. Android手机用wifi连接adb调试的方法

    https://www.jianshu.com/p/dc6898380e38 0x0 前言 Android开发肯定要连接pc的adb进行调试,传统的方法是用usb与pc进行连接,操作简单即插即用,缺点 ...

  5. 使用dos下的命令行,也可以完成wifi连接。

    使用dos下的命令行,也可以完成wifi连接. 具体如下: 首先了解无线网络的相关参数输入如下命令: ->netsh wlan 下列指令有效: 此上下文中的命令: ?               ...

  6. linux命令行模式连接网络,在Linux环境命令行中实现Wifi 连接的方法

    无论何时要安装一款新的 Linux 发行系统,一般的建议都是让您通过有线连接来接到互联网的. 这主要的原因有两条:第一,您的无线网卡也许安装的驱动不正确而不能用:第二,如果您是从命令行中来安装系统的, ...

  7. 富士相机设置传原图_【富士 X-E3 无反相机使用体验】蓝牙|WIFI|连接|图像传输_摘要频道_什么值得买...

    富士 X-E3 无反相机使用体验(蓝牙|WIFI|连接|图像传输) 一,蓝牙和WIFI 特别说明:蓝牙和wifi连接的稳定性,和手机有很大的关系,我使用的是锤子坚果Pro手机,官方应用市场里没有富士的 ...

  8. 【Android开发】wifi开关与wifi连接(密码连接)

    过放荡不羁的生活,容易得像顺水推舟,但是要结识良朋益友,却难如登天.-- 巴尔扎克 本文demo来自网络,找了好久找到的,后面自己做了些许修改,这里对源码解析,愧于忘记哪里出来了,感谢作者! 接下来就 ...

  9. Android 收银机Wifi 连接厨房厨单打印机

    Android 收银机Wifi 连接厨房厨单打印机 说明 第一次集成热敏打印机,对此相关知识为零,以快速接入为目的. 这里主要记录说明在集成过程中遇到的问题以及排查解决的办法.完整可用Android ...

最新文章

  1. python verilog顶层连线,如何在Verilog中连接两个模块?
  2. 实战项目:考勤系统的需求分析
  3. 开源圆桌 QA 集锦
  4. python wxpython_python GUI wxPython
  5. Android7.0,剪裁后提示“无法保存经过裁剪的图片”
  6. 39个必知必会的SQL 性能调优方法
  7. JVM原理及调优--网页链接收藏
  8. ~~线性筛法求素数(附模板题)
  9. redis主线程阻塞的情形
  10. 郭克华老师java视频教程下载地址
  11. html5验证码制作,Html5生成验证码的示例代码
  12. Word2Vec模型配置参数
  13. discuz模板介绍
  14. 告别飘云!飘云QQ核心技术人员正式声明退出开发[含全文]
  15. python unit test什么意思_python中的unittest有什么作用
  16. 对于TextView中设置艺术字体
  17. NR/5G - 系统消息变更
  18. react二级路由配置正确不显示页面的问题解决
  19. 苹果授权登录绑定手机号被拒绝
  20. Kotlin - 改良迭代器模式

热门文章

  1. 基础版微信模板消息开发详解,附代码PHP
  2. FineReport之localhost拒绝了我们的连接请求
  3. java手机教程_Java手机基础教程 (普通高等教育“十二五”规划教材(动漫游戏类))...
  4. C语言中四种取整方式、取余/取模的运算以及负数取模的问题
  5. 软件工程课堂作业(十六)——找“1”的个数
  6. Java中Xml解析详解 DOM、SAX、JDOM、DOM4J
  7. python毕业论文开题报告_本科毕业论文开题报告怎么写-如何写毕业设计的开题报告?...
  8. Android模拟器的下载与安装(Windows)
  9. iPhone/iPad屏幕投屏镜像到PC或Mac上面教程分享
  10. Qt Q_UNUSED使用