最近开发wifi方面的功能,需要根据wifi加密类型来展现UI。遇到了一个比较蛋疼的问题:如何判断wifi加密类型

wifi的管理需要通过WifiManager来操作

WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);

开启和关闭wifi

mWifiManager.setWifiEnabled(enabled);

扫描wifi列表

List scanResults= mWifiManager.getScanResults();

前面这几步非常简单,现在问题来了,数据已经拿到,那么如何判断呐?

wifi的加密类型是通过ScanResult 对象的capabilities字段来获取的,先看下官方的介绍:

注释里解释这个字段

Describes the authentication, key management, and encryption schemes supported by the access point.

描述了认证、密钥管理、接入点所支持的加密方案。

并没有提供如何区分加密类型的标准,通过搜索,网上的判断方法多数是这么写的

if (capabilities.contains("WEP")) {

...

} else if (capabilities.contains("PSK")) {

...

} else if (capabilities.contains("EAP")) {

...

} else {

//不加密

}

由于自己的电脑开启wifi热点有些问题,只是拿了两部手机和小米随身wifi进行测试,获取的capabilities字段的值如下:

//一些加密wifi获取的值

[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]

[WPA2-PSK-CCMP][WPS][ESS]

[WPA2-PSK-CCMP][ESS]

//Android手机(魅族和小米)共享的不加密wifi获取的值

[WPS][ESS]

//小米随身wifi(usb硬件)共享的不加密wifi获取的值

[ESS]

用上面的判断方法来匹配加密类型貌似没有问题,个人感觉这不是一个很好的解决方案。不加密的情况,这里仅仅测试了两部Android手机和小米随身wifi,就出现了不同的值,会不会出现其它的值?这是个疑问。如果您有更好的方法,欢迎指正!

参考链接

android 获取wifi的加密类型,wifi加密类型相关推荐

  1. Android获取手机当前连接的WiFi信息(SSID,IP,连接状态)

    1.AndroidMainfest.xml文件中添加权限 <uses-permission android:name="android.permission.ACCESS_NETWOR ...

  2. android充电状态广播,Android 获取电池是否充电状态、充电器类型

    0. demo 下载 https://github.com/sufadi/BatteryInfo 1. 电池广播获取充电状态 // 电池状态 import static android.os.Batt ...

  3. android获得手机的时间格式,Android获取手机通讯录并按照时间电话类型分类处理...

    本文用到的RecyclerView标题悬浮,参考连接 先看看图片详情: device-2017-01-08-113015.png device-2017-01-08-113047.png 获取通讯录之 ...

  4. java 获取wifi强度_Android获取当前已连接的wifi信号强度的方法

    本文实例讲述了Android获取当前已连接的wifi信号强度的方法,是Android程序开发中非常常见的重要技巧.分享给大家供大家参考之用.具体方法如下: 1.得到当前已连接的wifi信息 WifiM ...

  5. android 获取wifi的加密类型,Android WIFI开发:获取wifi列表,连接指定wifi,获取wifi加密方式,监听wifi网络变化等...

    下面是 Android 开发中 WiFi 的常用配置,如:获取当前 WiFi ,扫描 WiFi 获取列表,连接指定 WiFi ,监听网络变化等等. 下面是效果图: GitHub 下载地址:https: ...

  6. Android 获取wifi的加密方式

    Android 获取当前wifi的加密方式 由于有需求是搜索附近的网络,通过账号和密码连接wifi,但是连接的时候需要知道连接的wifi加密方式 这篇博客 也是我写的,由于忘记账号和密码了,所以换了账 ...

  7. 一键加密:WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)

    如果没有有效的安全加密设置,自己的局域网很可能在无意间就变成了公共网络.但是,面对WEP.WPA.WPA2等加密技术,用户往往觉得无线安全设置太麻烦,甚至感到那是高深莫测的事情.正是考虑到普通用户对无 ...

  8. Wi-Fi无线网络(WPA2加密)快速破解 ——某公司无线设备安全隐患报告

    Wi-Fi无线网络(WPA2加密)快速破解 --某公司无线设备安全隐患报告 评估人:阿牛 2013年12月12日 文件夹 一. 导言 2 二. 背景 2 三. 无线产品应当採取的安全策略 3 四. 存 ...

  9. (一百七十七) WiFi如何分辨出不同加密方式的AP?(续)

    前言:之前https://blog.csdn.net/sinat_20059415/article/details/99686537 看WiFi如何分辨出不同加密方式的AP? 中提到"加密方 ...

最新文章

  1. 用WSDL定义Web服务
  2. 不同存储区域的数组分析
  3. VS和matlab混合编程的推荐书籍!
  4. cuda二维数组内存分配和数据拷贝
  5. 初学Web前端开发,你需要掌握的11项技能
  6. java中线性结构的例子_java数据结构--线性结构
  7. Spring @Value取值为null或@Autowired注入失败
  8. 计算机用手机的网络,电脑做热点让手机上网_电脑开热点给手机用
  9. 面试官系统精讲Java源码及大厂真题 - 28 Future、ExecutorService 源码解析
  10. zlib-1.2.11手册
  11. android下载图片服务,Android中的背景图片下载需要帮助吗?
  12. 前端工程师技能之photoshop巧用系列第一篇——准备篇
  13. 在线JWT Token解析解码
  14. 在Microsoft Office 2007中检测和修复应用程序
  15. Typora入门手册
  16. 哪些股票自动交易接口好用呢?
  17. opencv用shi-Tomasi角点检测实现目标追踪
  18. 用计算机怎么刷试听量,QQ音乐怎么刷播放次数,快速增加播放量
  19. phpspreadsheet 读取 Excel 表格问题
  20. 微信小程序将组件中的文字放置在正中间的方法

热门文章

  1. Python安装工具包踩过的坑
  2. javamail实现邮箱验证功能
  3. 5.一文搞懂MySQL的数据类型
  4. Spring Data JPA 从入门到精通~@EntityListeners注解示例
  5. 经典php代码,HTML_php教程:经典PHP代码,经典循环例子 HTMLHEAD - phpStudy
  6. 如何在js中使用ajax请求数据,在 JS 中怎么使用 Ajax 来进行请求
  7. python3多进程写时拷贝_python多进程实现复制文件
  8. WinSock I/O 模型 -- WSAEventSelect 模型
  9. [设计模式] ------ 适配器模式
  10. oracle中主键创建的语法,Oracle中主键、外键、索引、序列、唯一性约束的创建