Android 获取当前wifi的加密方式

由于有需求是搜索附近的网络,通过账号和密码连接wifi,但是连接的时候需要知道连接的wifi加密方式

这篇博客 也是我写的,由于忘记账号和密码了,所以换了账号,重新整理了一下
原文地址:
android获取当前隐藏和未隐藏wifi的加密方式(安全性)


1.一般WIFI加密有几种方式

  • WPA-PSK/WPA2-PSK(目前最安全家用加密)
  • WPA/WPA2(较不安全)
  • WEP(安全较差)
  • AP(迄今最安全的)

2.获取WiFi加密方式一(不推荐)

 public void getCipherType(Context context, String ssid) {WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);List<ScanResult> list = wifiManager.getScanResults();for (ScanResult scResult : list) {if (!TextUtils.isEmpty(scResult.SSID) && scResult.SSID.equals(ssid)) {String capabilities = scResult.capabilities;Log.i("river","capabilities=" + capabilities);if (!TextUtils.isEmpty(capabilities)) {if (capabilities.contains("WPA") || capabilities.contains("wpa")) {Log.i("river", "wpa");} else if (capabilities.contains("WEP") || capabilities.contains("wep")) {Log.i("river", "wep");} else {Log.i("river", "no");}}}}}

注意:此方法获取不到隐藏的网络加密方式

3.获取WiFi加密方式二(推荐)

于是查看系统设置源码中查看,系统是如何获取到隐藏网络的加密方式

    /** * These values are matched in string arrays -- changes must be kept in sync */  static final int SECURITY_NONE = 0;  static final int SECURITY_WEP = 1;  static final int SECURITY_PSK = 2;  static final int SECURITY_EAP = 3;  static int getSecurity(WifiConfiguration config) {  if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {  return SECURITY_PSK;  }  if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP) || config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {  return SECURITY_EAP;  }  return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE;  }  

测试代码

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo info = mWifiManager.getConnectionInfo();// 得到配置好的网络连接List<WifiConfiguration> wifiConfigList = mWifiManager.getConfiguredNetworks();for (WifiConfiguration wifiConfiguration : wifiConfigList) {//配置过的SSIDString configSSid = wifiConfiguration.SSID;configSSid = configSSid.replace("\"", "");//当前连接SSIDString currentSSid =info.getSSID();currentSSid = currentSSid.replace("\"", "");//比较networkId,防止配置网络保存相同的SSIDif (currentSSid.equals(configSSid)&&info.getNetworkId()==wifiConfiguration.networkId) {Log.e("river", "当前网络安全性:" + getSecurity(wifiConfiguration));}}}/*** These values are matched in string arrays -- changes must be kept in sync*/static final int SECURITY_NONE = 0;static final int SECURITY_WEP = 1;static final int SECURITY_PSK = 2;static final int SECURITY_EAP = 3;static int getSecurity(WifiConfiguration config) {if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {return SECURITY_PSK;}if (config.allowedKeyManagement.get(KeyMgmt.WPA_EAP) || config.allowedKeyManagement.get(KeyMgmt.IEEE8021X)) {return SECURITY_EAP;}return (config.wepKeys[0] != null) ? SECURITY_WEP : SECURITY_NONE;}

Android 获取wifi的加密方式相关推荐

  1. 如何快速简单的获取WIFI的加密方式

    场景:有的设备连接热点或者网络设备需要知道其加密方式,才能实现网络连接,或者实行解密破解等. WIFi加密的方式日益更新,那么如何简单快速查看需要WIFI的加密方式? 下面我来介绍一种非常实用且简单的 ...

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

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

  3. android 获取wifi的加密类型,wifi加密类型

    最近开发wifi方面的功能,需要根据wifi加密类型来展现UI.遇到了一个比较蛋疼的问题:如何判断wifi加密类型 wifi的管理需要通过WifiManager来操作 WifiManager mWif ...

  4. 谁更安全?WI-FI无线网加密方式大比拼

    为什么80%的码农都做不了架构师?>>>    哪里有隐私,哪里就有安全防护.随着无线网络的普及,在商场.街上.餐厅搜索到无线信号并不出奇,这些无线热点一般都是免费的提供,并不对信号 ...

  5. Android:获取存储卡路径的方式

    Android获取存储卡路径的方式 Android Lint 有个关于在代码中硬编码"sdcard"路径的警告,内容为: 不要硬编码(hardcode) "/sdcard ...

  6. Android中常用的加密方式

    Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...

  7. android 获取wifi 信号质量,信号强度

    android 获取wifi 信号质量 编辑 | 删除 int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);即信号强度 ...

  8. 在Windows, Mac, Linux三种系统中分别获取wifi密码的方式

    在Windows, Mac, Linux三种系统中分别获取wifi密码的方式 1. Windows netsh wlan show profile name=wifi名称 key=clear | fi ...

  9. 802.11协议wifi新加密方式WPA3介绍

    当今的wifi安全问题 802.11任务组于2001年开始应用wpa2.当是还没有wifi并且802.11的应用也不像今天一样普遍.这是技术上的第一大步并且wifi以网卡几口的方式嵌入笔记本电脑上.此 ...

最新文章

  1. C++加快编译速度的方法
  2. 中小型金融企业该如何进行灾备建设?
  3. 使用 Linux 系统调用的内核命令
  4. 基于Bootstrap Ace模板+bootstrap.addtabs.js的菜单
  5. 二叉树的先序建树后序输出
  6. 用Windows Live Writer 2012发博客
  7. Python数模笔记-模拟退火算法(1)多变量函数优化
  8. 让你快乐的21种方法
  9. 2021年末储能季,送4本面试宝典
  10. echart高级使用_Vue:在Vue中使用echarts
  11. php根据某个字段去重,php二维数组根据某个字段去重
  12. matlab做三次拉格朗日插值多项式_买菜必用的MATLAB拉格朗日插值函符号解输出
  13. HDU 1024 (不重叠m段最大和) Max Sum Plus Plus
  14. o(n)复杂度下实现数组去除重复项
  15. dell重装系统后找不到无线网卡驱动
  16. 使用Python写一个简单的服务器
  17. mysql skip-grant-tables my.cnf_使用SKIP-GRANT-TABLES解决MYSQLROOT密码丢失
  18. 计算机课代表中段考总结,第一学期中段考试总结
  19. UART总线协议——esp32学习笔记
  20. NRF52832学习笔记(23)——GAP主机端连接

热门文章

  1. Executors 框架
  2. Java中嵌套循环的使用
  3. springboot二手车估值与销售网络平台java ssm
  4. XDC约束技巧--CDC
  5. easyswoole数据库连接池_easyswoole快速实现一个网站的api接口程序
  6. playwright教程 (一)适合小白
  7. svelte + vite 开发 Web Components
  8. 时间概念 — 24时区、GMT、UTC的意涵
  9. 农业方面的计算机知识,农业信息技术复习重点.doc
  10. ubuntu18.0.4安装eclipse完整过程