news 2026/8/14 1:58:04

【Android学习-wifi局域网配网开发】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Android学习-wifi局域网配网开发】

wifi局域网配网开发

  • 准备工作
  • 逻辑
  • 优化

如题,项目软件需要配网(wifi),每次现场安装都需要使用鼠标键盘进行配网的操作。影响安装效率,在参考市面上的大多数类似设备后,决定添加通过wifi热点进行局域网配网的功能。
为实现该功能,需要做一些准备工作

准备工作

  1. 权限

① 配网的功能需要使用到定位和wifi权限。
注意事项:不同的安卓版本需要的权限不同,博主是安卓14的版本,14-17应该差不多,安卓8等较低版本权限可能有所不同,可以问AI;定位权限只开放不启动就行

<!--网络基础权限--><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.INTERNET"/><!--WiFi扫描权限(Android10+--><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"android:usesPermissionFlags="neverForLocation"/>

②开关wifi需要系统级的权限,要么联系厂家拿系统签名,然后打包。要么找厂家要相关的jar/aar包,通过该包调用相应的api。没有系统权限的app打包了也无法正常使用wifi相关的功能

逻辑

由于大部分代码都是AI(ds,gpt,claude都用了)写的,因此只说明大致流程。下面是大概的功能描述

Android IoT 设备设计的 WiFi 配网库,实现了:

  • 零键鼠配网:通过 AP 热点 + Web 配网页面完成 WiFi 配置,无需键鼠/显示器
  • AP 热点常驻:AP 热点永久开启,方便随时访问配网服务
  • 双模式支持:WiFi 连接成功后自动尝试 AP+STA 双模式
  • Captive Portal:手机连接热点后自动弹窗进入配网页面
  • 状态监控:WiFi 断开自动恢复,AP 热点保持运行

获得权限后先判断设备是否已经连接wifi,是则无需开启热点相关的服务;否则通过开启局域网和热点服务,让用户通过手机等设备连接相应的wifi,然后找到wifi,输入密码。即可完成配网的操作

注意事项:配网的前端服务需要固定好ip和端口号,否则默认是动态的,如果不看日志就不知道ip和端口号是哪个了

优化

当前放置在项目中运行,暂时没有什么问题。实际遇到可以优化的就是关于wifi修改密码的问题,如果用户直接通过键鼠的方式强行修改过系统的wifi密码,并且是错误的,此时项目中的就失效了。系统输入的wifi密码权限如果没有系统签名的话会被拒绝
提示类似下图的信息,导致无法正常修改密码。该问题当前还在联系厂家

根本原因 :Android 10+ 限制应用只能修改自己创建的WiFi配置。用户在系统设置中输入错误密码后,配置由系统Settings创建,我们的app无权删除、修改或通过 connect() API 连接。

解决方案:使用 su 命令绕过权限限制,先忘记旧网络再连接。

/** * 使用 wpa_cli 命令连接WiFi(cmd wifi的后备方案) */privatestaticbooleanconnectWithWpaCli(Stringssid,Stringpassword){try{Processprocess=Runtime.getRuntime().exec("su");java.io.DataOutputStreamos=newjava.io.DataOutputStream(process.getOutputStream());// wpa_cli 命令序列os.writeBytes("wpa_cli add_network\n");// 等待add_network返回ID比较复杂,直接用一个固定的流程// 先remove所有匹配SSID的网络,再添加新的os.writeBytes("wpa_cli list_networks\n");if(password==null||password.isEmpty()){os.writeBytes("wpa_cli set_network 0 ssid '\""+ssid+"\"'\n");os.writeBytes("wpa_cli set_network 0 key_mgmt NONE\n");}else{os.writeBytes("wpa_cli set_network 0 ssid '\""+ssid+"\"'\n");os.writeBytes("wpa_cli set_network 0 psk '\""+password+"\"'\n");}os.writeBytes("wpa_cli enable_network 0\n");os.writeBytes("wpa_cli select_network 0\n");os.writeBytes("wpa_cli save_config\n");os.writeBytes("exit\n");os.flush();os.close();java.io.BufferedReaderreader=newjava.io.BufferedReader(newjava.io.InputStreamReader(process.getInputStream()));Stringline;while((line=reader.readLine())!=null){Log.i(TAG,"wpa_cli: "+line);}intresult=process.waitFor();Log.i(TAG,"wpa_cli 结果: "+result);returnresult==0;}catch(Exceptione){Log.e(TAG,"wpa_cli连接失败",e);returnfalse;}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 1:57:43

北京企业官网网站建设哪家好:避坑指南与深度解析,教你选对合作伙伴不花冤枉钱

今天咱们不整那些虚头巴脑的专业术语,也不搞那些听起来高大上但落地全是坑的理论。作为在这个行业里摸爬滚打这么多年的人,我见过太多老板在“北京企业官网网站建设哪家好”这个问题上栽跟头。有的老板预算充足,结果找了个所谓的4A公司,交出来一堆花里胡哨却打不开的手机端…

作者头像 李华
网站建设 2026/8/14 1:57:23

Keras ZeroPadding2D层详解:从核心原理到版本降级避坑指南

1. 从一次降级失败说起&#xff1a;为什么一个简单的填充层会卡住你&#xff1f;最近在社区里看到不少朋友在折腾Keras版本&#xff0c;特别是从guidance 17.4降级到17.2时&#xff0c;频频遇到与layers相关的报错。这让我想起自己刚接触深度学习框架时&#xff0c;也常常被一些…

作者头像 李华
网站建设 2026/8/14 1:57:04

重庆双福建设开发有限公司网站深度解析:如何解读其背后的城市发展与民生承诺

在这个信息爆炸、节奏飞快的时代,当我们提到“重庆”这座魔幻8D城市时,脑海中浮现的往往是层层叠叠的轻轨、迷雾缭绕的山顶和那股挥之不去的火锅香。然而,在这光鲜亮丽的城市表皮之下,真正支撑起城市运转、改变人们日常生活的,是无数看不见的基建力量和默默耕耘的开发主体…

作者头像 李华
网站建设 2026/8/14 1:56:57

深圳网站建设搜q479185700专业解答企业数字化转型中的那些坑与雷

在这个互联网渗透率几乎达到饱和的时代,很多老板或者市场负责人常常会产生一种错觉,觉得“我有微信,我有抖音,我还花那冤枉钱建什么官网啊?”这种想法在几年前或许还能站住脚,但在今天,随着数字营销环境的越来越复杂,这种观点就显得有些天真甚至危险了。官网不仅仅是一…

作者头像 李华
网站建设 2026/8/14 1:56:51

揭秘滨州正规网站建设哪家专业:从避坑指南到优质服务商的选择逻辑与深度解析

在如今这个流量为王、注意力稀缺的时代,一家企业的官网早已不再仅仅是一个展示产品的静态页面,它更像是企业在数字世界中的“门面担当”,是品牌信任度的第一载体。对于咱们滨州的众多中小企业主而言,面对市面上五花八门、良莠不齐的建站公司,心里最没底的往往就是那句:滨…

作者头像 李华
网站建设 2026/8/14 1:56:51

信号与系统考研复习:从知识到解题的暑假逆袭规划

1. 暑假复习的核心目标&#xff1a;从“看懂了”到“会做题”对于考南京信息工程大学811信号与系统的同学来说&#xff0c;暑假是决定性的分水岭。很多人复习到暑假&#xff0c;感觉书也看了&#xff0c;课也听了&#xff0c;但一做真题就卡壳&#xff0c;或者看到题目感觉似曾…

作者头像 李华