wifi加密类型

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

  • wifi的管理需要通过WifiManager来操作
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
  • 开启和关闭wifi
mWifiManager.setWifiEnabled(enabled);
  • 扫描wifi列表
List<ScanResult> 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,就出现了不同的值,会不会出现其它的值?这是个疑问。如果您有更好的方法,欢迎指正!

参考链接

http://stackoverflow.com/questions/11956874/scanresult-capabilities-interpretation http://stackoverflow.com/questions/10762533/constructing-a-wificonfiguration-from-a-scanresult-or-interpreting-scanresults

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

一个“良心未泯”的国产敲诈者病毒分析

一、 前言 近两年,以敲诈勒索为目的的文件加密恶意软件逐渐成为恶意软件中的主力军。以Locky家族,ceber家族为典型代表的敲诈勒索软件席卷国外,对政府机构,...

1967
来自专栏北京马哥教育

HTTPS连接的前几毫秒发生了什么

提示:英文原文写于2009年,当时的Firefox和最新版的Firefox,界面也有很大改动。以下是正文。 花了数小时阅读了如潮的好评,Bob最终迫不及待为他购...

3807
来自专栏owent

atgateway内置协议流程优化-加密、算法协商和ECDH

之前就有计划优化游戏服务器框架网关层的内部协议了,这次泰国旅游回来,新公司入职前,正海有空来做这件事。

1022
来自专栏Java工程师日常干货

从Java程序员的角度理解加密的那些事

在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参...

1622
来自专栏安全领域

在微控制器和物联网上使用JavaScript:SSL / TLS

在今天的这篇文章中,我们回到Particle Photon上来解决他的一个最大的缺点:缺少TLS支持,接下来我们将详细介绍如何添加这一功能。

81814
来自专栏编舟记

Corda网络的证书签发

https://docs.corda.net/permissioning.html

1441
来自专栏FreeBuf

使用Go和Let&#39;s Encrypt证书部署HTTPS

为什么要使用HTTPS?使用HTTPS的途径有哪些?如何用Go来部署HTTPS?拿出你的小本本,你要的干货都在这儿! HTTPS 的好处我们已在之前的文章中提高...

2513
来自专栏耕耘实录

存储基础:ATA、SATA、SCSI、SAS、FC

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

2925
来自专栏函数式编程语言及工具

Scalaz(15)- Monad:依赖注入-Reader besides Cake

  我们可以用Monad Reader来实现依赖注入(dependency injection DI or IOC)功能。Scala界中比较常用的不附加任何Fr...

2097
来自专栏AI派

[Python爬虫]中国新说唱 Skr~ Skr~

https://mp.weixin.qq.com/s/IiLGk1qk9IXv6XD96GODcg

1263

扫码关注云+社区

领取腾讯云代金券