通过SSID,密码,和连接类型来连接WiFi,并保存配置

2023-11-07

public class MainActivity extends Activity {


WifiManager mWifiManager;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Button button = (Button) findViewById(R.id.button);
final EditText edit_ssid = (EditText) findViewById(R.id.edit1);
final EditText edit_psw = (EditText) findViewById(R.id.edit2);
final EditText edit_type = (EditText) findViewById(R.id.edit3);
edit_ssid.setText("iDataOffice");
edit_psw.setText("IntegralTek");
edit_type.setText(""+3);


button.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View v) {
WifiConfiguration wificonfig = CreateWifiInfo(edit_ssid.getText().toString().trim(), 
edit_psw.getText().toString().trim(),
Integer.parseInt(edit_type.getText().toString()));
int id = mWifiManager.addNetwork(wificonfig);
mWifiManager.saveConfiguration();
mWifiManager.enableNetwork(id, true);
}
});
}


public WifiConfiguration CreateWifiInfo(String SSID, String Password, int Type)     
{     
WifiConfiguration config = this.IsExsits(SSID);               
if(config != null) {      
mWifiManager.removeNetwork(config.networkId);      
}    
config = new WifiConfiguration();
config.allowedAuthAlgorithms.clear();     
config.allowedGroupCiphers.clear();     
config.allowedKeyManagement.clear();     
config.allowedPairwiseCiphers.clear();     
config.allowedProtocols.clear();     
config.SSID = "\"" + SSID + "\"";       




if(Type == 1) //WIFICIPHER_NOPASS    
{     
config.wepKeys[0] = "";     
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);     
config.wepTxKeyIndex = 0;     
}     
if(Type == 2) //WIFICIPHER_WEP    
{     
config.hiddenSSID = true;    
config.wepKeys[0]= "\""+Password+"\"";     
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 == 3) //WIFICIPHER_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.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);    
config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);    
config.status = WifiConfiguration.Status.ENABLED;       
}    
return config;     
}


private WifiConfiguration IsExsits(String sSID) {
List<WifiConfiguration> existingConfigs = mWifiManager.getConfiguredNetworks();
if(null == existingConfigs || existingConfigs.equals("")){
return null;
}
for(WifiConfiguration existingConfig : existingConfigs){
if(existingConfig.SSID.toString().equals("\"" + sSID + "\"")){
return existingConfig;
}
}
return null;
}     


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过SSID,密码,和连接类型来连接WiFi,并保存配置 的相关文章

随机推荐

  • 指向函数的指针 ------ 函数指针(function pointer)

    函数具有可赋值给指针的物理内存地址 一个函数的函数名就是一个指针 它指向函数的代码 一个函数的地址是该函数的进入点 也是调用函数的地址 函数的调用可以通过函数名 也可以通过指向函数的指针来调用 函数指针还允许将函数作为变元传递给其他函数 不
  • 读写一致 && MySQL&&Redis

    存储一致性 CPU存储 L1L2Cache等等 不懂CPU如何读写内存还敢说自己是程序员 知乎 zhihu com 基础知识 1 什么是cache line cache line 位于 CPU 与内存之间 CPU想要获得数据的时候 先从CP
  • Typora+PicGo+Alist 私人图床教程

    前置资源 已安装好typora 直接官网下载即可 Typora 官方中文站 typoraio cn 安装好PicGo 稳定版优先 推荐稳定版2 3 1 PicGo 腾讯云COS 下载链接 下载速度快 https picgo 12517503
  • 人民币兑换python

    输入一个人民币的整数值 100以内以元为单位 编程找到用10元 5元 2元 1元表示的总数量的最小组合方式 输入形式 从控制台输入一个整数值 表示以元为单位的人民币币值 输出形式 向控制台输出四个整数 以空格分隔 分别表示兑换成的10元 5
  • linux安装minio以及springboot整合使用

    文章目录 1 linux安装minio 2 springboot整合minio使用 1 linux安装minio 1 新建文件夹 mkdir home minio 数据文件夹 mkdir home minio data 创建日志文件夹 mk
  • python-selenium-pytest-allure UI自动化测试

    一 下载及安装插件 python selenium pytest allure 辅助 pyautoit pymysql 二 代码框架 1 基础文件 main py if name main pytest main alluredir all
  • 台式电脑没鼠标怎么移动光标_台式电脑没有鼠标怎么操作电脑

    没鼠标只能靠键盘操作了 以下都是键盘快捷键命令F6 选择操作区域光标键 选择目标backspac 退回上一级目录enter 进入 运行 table 项目选择单独按Windows 显示或隐藏 开始 功能表Windows BREAK 显示 系统
  • gettimeofday windows上的实现

    gettimeofday是Linux上的函数 在windows的实现 这里直接转doubango工程中的tsk time c 源文件种的实现 可以参考 include tsk time h include tsk debug h if TS
  • CodeBlocks新手安装以及汉化(20,03版本)

    CodeBlocks 20 03安装以及汉化设置 CodeBlocks官网 https www codeblocks org downloads binaries CodeBlocks 20 03安装包及汉化包下载 链接 https pan
  • 利用python实现简易版的贪吃蛇游戏(面向python小白)

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 引言 作为python 小白 总是觉得自己要做好百分之二百的准备 才能开始写程序 以至于常常整天在那看各种语法教程 学了几个月还是只会print hello world 这
  • 线性回归算法

    一 监督学习完整流程 房价预测为例 给出正确答案 根据我们的数据来说房子实际的价格是多少 回归问题 根据之前的数据预测出一个准确的输出值 另一种监督学习流程 分类问题 寻找癌症肿瘤问题 当我们想要预测离散的输出值 例如寻找癌症肿瘤并想要确认
  • 新安装的IDEA 2019.2---没法启动 Start Failed

    Internal error Please report to http jb gg ide critical startup errors com intellij ide plugins MainRunner StartupAborte
  • 数学基础(一)矩阵对角化、SVD分解以及应用

    目录 一 矩阵 1 矩阵的性质 2 单位矩阵和逆矩阵 3 矩阵的对角化 二 矩阵的SVD分解 三 SVD的应用 一 矩阵 1 矩阵的性质 下面列出了矩阵的一些性质 A表示一个p m的矩阵 B C表示一个m n的矩阵 最后一条比较常用 由于x
  • Python编程基础题(18-求平均值)

    Description 本题的基本要求非常简单 给定 N 个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后 2 位 当你计算平均值的时候 不能把那些
  • TS实现排序算法之选择排序

    选择排序算法 每次从待排序序列中找出最大值或最小值 查找过程重复 n 1 次 对于每次找到的最大值或最小值 通过交换元素位置的方式将它们放置到适当的位置 最终使整个序列变成有序序列 升序排列时 每次查找待排序序列中的最小值的位置 然后交换位
  • MQTT协议详解及v5.0实践——实践类

    本文主要包含了以下内容 1 MQTT协议演进历史及协议特点 总结和分析MQTT协议族的优缺点 分析和总结了为什么相比于其他协议 MQTT适合IoT 业内支持现状等 2 阿里云IoT MQTT3和5协议在实践中的一些关键设计及思考 包括连接复
  • LMS自适应滤波算法

    LMS自适应滤波算法 一 随机过程的简介 1 广义平稳 WSS 过程需要满足的两个条件 WSS过程的自相关函数具有的性质 MATLAB中的互相关函数xcorr 二 自适应滤波器 1 简介 自适应FIR滤波器 2 性能函数 基于平均误差 MS
  • react取消捕获_React 阻止默认事件和阻止冒泡

    首先有这样一段代码 很久很久以前有这样一个故事 这要从远古时代说起 fn和fn1是一对父子 div是parent span是children fn是子 fn1是父 最近在学react 首先 fn ev alert children fn1
  • (十七)DAC转换实验

    上一节我们写了关于ADC的相关内容 这一节我们就要写有关于DAC的相关内容 DAC即是将数字信号转换为模拟信号 它的功能与ADC相反 我们这节通过输出数字信号转换为模拟信号实现led灯先逐渐变亮再逐渐变暗来实现相应的功能 关于DAC 我们知
  • 通过SSID,密码,和连接类型来连接WiFi,并保存配置

    public class MainActivity extends Activity WifiManager mWifiManager Override protected void onCreate Bundle savedInstanc