android 获取当前隐藏和未隐藏wifi的加密方式(安全性)
来源:互联网 发布:淘宝卖家遇到职业打假 编辑:程序博客网 时间:2024/04/29 00:55
1.一般WIFI加密有几种方式:
(1).WPA-PSK/WPA2-PSK(目前最安全家用加密)
(2).WPA/WPA2(较不安全)
(3).WEP(安全较差)
(4).EAP(迄今最安全的)
2.一般点击系统当前网络都会有弹出详细信息
那么这个安全性是怎么获取的呢?通过查阅系统源码可知:
public class MainActivity extends Activity { @Override protected 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) { //配置过的SSID String configSSid = wifiConfiguration.SSID; configSSid = configSSid.replace("\"", ""); //当前连接SSID String currentSSid =info.getSSID(); currentSSid = currentSSid.replace("\"", ""); //比较networkId,防止配置网络保存相同的SSID if (currentSSid.equals(configSSid)&&info.getNetworkId()==wifiConfiguration.networkId) { Log.e("hefeng", "当前网络安全性:" + 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; }
这样就可以获取到了。这样做可以避免你的wifi ssid被隐藏了还可以获取到加密方式
3.一般获取加密方式是这样的,但是一旦你在路由器上面设置ssid隐藏了,你就搜索不到的
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("hefeng","capabilities=" + capabilities); if (!TextUtils.isEmpty(capabilities)) { if (capabilities.contains("WPA") || capabilities.contains("wpa")) { Log.i("hefeng", "wpa"); } else if (capabilities.contains("WEP") || capabilities.contains("wep")) { Log.i("hefeng", "wep"); } else { Log.i("hefeng", "no"); } } } } }
5 0
- android 获取当前隐藏和未隐藏wifi的加密方式(安全性)
- Android 获取wifi的加密方式
- Android 中AppCompatActivity和Activity中隐藏标题栏的方式
- Android用loadClass获取系统隐藏类和隐藏服务的方法
- Android控件隐藏方式
- Android控件隐藏方式
- Android控件隐藏方式 .
- Android控件隐藏方式
- Android控件隐藏方式
- Android控件隐藏方式
- Android 获取当前连接的WiFi信息
- Android获取当前连接的wifi名称
- Android获取当前连接wifi的信道
- Android获取当前连接的wifi名称
- Android获取当前连接wifi的信道
- Android获取当前连接的wifi名称
- Android获取当前连接wifi的信道
- wifi无线网络的认证和加密方式
- Android事件传递机制(全面)
- Codeforces 4A. Watermelon
- QtQuick中调用c++的重载函数
- 艾森豪威尔时间管理法则
- Dreaweaver8的使用-站点
- android 获取当前隐藏和未隐藏wifi的加密方式(安全性)
- Android startActivityForResult unfortunately 程序名 has stopped的问题
- Velocity的中文指南
- 第十五周项目三 (3)指针当形参
- LTE TDD与LTE FDD技术简介和比较
- Codeforces 4B. Before an Exam
- 1
- 深入java--equals()和hashCode()方法
- uml之四种关系