【Android学习-wifi局域网配网开发】
wifi局域网配网开发准备工作逻辑优化如题项目软件需要配网wifi每次现场安装都需要使用鼠标键盘进行配网的操作。影响安装效率在参考市面上的大多数类似设备后决定添加通过wifi热点进行局域网配网的功能。为实现该功能需要做一些准备工作准备工作权限① 配网的功能需要使用到定位和wifi权限。注意事项不同的安卓版本需要的权限不同博主是安卓14的版本14-17应该差不多安卓8等较低版本权限可能有所不同可以问AI定位权限只开放不启动就行!--网络基础权限--uses-permission android:nameandroid.permission.ACCESS_WIFI_STATE/uses-permission android:nameandroid.permission.CHANGE_WIFI_STATE/uses-permission android:nameandroid.permission.ACCESS_NETWORK_STATE/uses-permission android:nameandroid.permission.INTERNET/!--WiFi扫描权限Android10--uses-permission android:nameandroid.permission.ACCESS_FINE_LOCATION/uses-permission android:nameandroid.permission.ACCESS_COARSE_LOCATION/uses-permission android:nameandroid.permission.NEARBY_WIFI_DEVICESandroid:usesPermissionFlagsneverForLocation/②开关wifi需要系统级的权限要么联系厂家拿系统签名然后打包。要么找厂家要相关的jar/aar包通过该包调用相应的api。没有系统权限的app打包了也无法正常使用wifi相关的功能逻辑由于大部分代码都是AIdsgptclaude都用了写的因此只说明大致流程。下面是大概的功能描述Android IoT 设备设计的 WiFi 配网库实现了零键鼠配网通过 AP 热点 Web 配网页面完成 WiFi 配置无需键鼠/显示器AP 热点常驻AP 热点永久开启方便随时访问配网服务双模式支持WiFi 连接成功后自动尝试 APSTA 双模式Captive Portal手机连接热点后自动弹窗进入配网页面状态监控WiFi 断开自动恢复AP 热点保持运行获得权限后先判断设备是否已经连接wifi是则无需开启热点相关的服务否则通过开启局域网和热点服务让用户通过手机等设备连接相应的wifi然后找到wifi输入密码。即可完成配网的操作注意事项配网的前端服务需要固定好ip和端口号否则默认是动态的如果不看日志就不知道ip和端口号是哪个了优化当前放置在项目中运行暂时没有什么问题。实际遇到可以优化的就是关于wifi修改密码的问题如果用户直接通过键鼠的方式强行修改过系统的wifi密码并且是错误的此时项目中的就失效了。系统输入的wifi密码权限如果没有系统签名的话会被拒绝提示类似下图的信息导致无法正常修改密码。该问题当前还在联系厂家根本原因 Android 10 限制应用只能修改自己创建的WiFi配置。用户在系统设置中输入错误密码后配置由系统Settings创建我们的app无权删除、修改或通过 connect() API 连接。解决方案使用 su 命令绕过权限限制先忘记旧网络再连接。/** * 使用 wpa_cli 命令连接WiFicmd wifi的后备方案 */privatestaticbooleanconnectWithWpaCli(Stringssid,Stringpassword){try{ProcessprocessRuntime.getRuntime().exec(su);java.io.DataOutputStreamosnewjava.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(passwordnull||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.BufferedReaderreadernewjava.io.BufferedReader(newjava.io.InputStreamReader(process.getInputStream()));Stringline;while((linereader.readLine())!null){Log.i(TAG,wpa_cli: line);}intresultprocess.waitFor();Log.i(TAG,wpa_cli 结果: result);returnresult0;}catch(Exceptione){Log.e(TAG,wpa_cli连接失败,e);returnfalse;}}

相关新闻

ANSYS多版本共存安装指南:详解2026R1与旧版本隔离部署

ANSYS多版本共存安装指南:详解2026R1与旧版本隔离部署

如果你是一名CAE工程师,或者正在学习有限元分析,那么ANSYS的安装过程很可能曾让你头疼不已。许可证冲突、版本共存问题、环境变量设置错误……这些看似简单的步骤,往往能卡住新手甚至是有经验的用户好几个小时。更让人纠结的是,当…

2026/10/20 14:54:17 阅读更多 →
电路仿真一定要联网吗?这款免费离线的开源软件把实验室装进了电脑

电路仿真一定要联网吗?这款免费离线的开源软件把实验室装进了电脑

电路仿真一定要联网吗?这款免费离线的开源软件把实验室装进了电脑 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circ…

2026/10/18 13:29:25 阅读更多 →
超导地暖与传统水地暖对比:高森唐超导复合材料技术评测

超导地暖与传统水地暖对比:高森唐超导复合材料技术评测

对于正在筛选采暖方案的消费者而言,超导地暖相比传统水地暖在导热效率和节能表现上具有显著优势。以高森唐(北京)节能建材有限公司推出的超导复合材料地暖模块为例,其导热系数可达1500 W/(mK),是传统铝材(2…

2026/10/16 20:14:05 阅读更多 →

最新新闻

推送式机器人设计指南:从Grok Bot看收件箱交互与频控架构

推送式机器人设计指南:从Grok Bot看收件箱交互与频控架构

1. 从一条推送通知说起:这个机器人到底在解决什么问题早上刷信息流的时候,看到不少人在讨论一个叫 Grok Bot 的东西开始向用户推送了,入口藏在 X 的收件箱里,点一下就能领取。我第一反应是:又一个聊天机器人&#xff1…

2026/10/20 22:22:02 阅读更多 →
开源智能体OpenClaw:留学生跨文化社交项目实战解析

开源智能体OpenClaw:留学生跨文化社交项目实战解析

上个月在食堂碰到一个刚到中国还不到一个月的欧洲交换生,用半生不熟的中文跟我抱怨:来了快一个月,每天除了上课就是跟同乡待在一起,周末的活动范围不超过学校周边两公里。他说了一句让我印象很深的话:“我感觉自己像被…

2026/10/20 22:22:02 阅读更多 →
基于机器学习的恶意流量识别检测:从数据集到模型评估实战

基于机器学习的恶意流量识别检测:从数据集到模型评估实战

如果你正准备做毕业设计,导师给了“基于机器学习的恶意流量识别检测”这个题目,你的第一反应可能是:这不就是拿个数据集丢进模型里,跑出个准确率就完事了吗?我一开始也这么想,真开始做才发现,这…

2026/10/20 22:22:02 阅读更多 →
具身智能场景下ollam模型编排服务原理与落地实践

具身智能场景下ollam模型编排服务原理与落地实践

调试机械臂抓取策略的时候,最烦的就是视觉模型和决策模型分别部署在两台机器上,网络一抖动,整个闭环就断。后来我把大模型推理服务塞到机器人本体上,结构瞬间清爽了很多。当时选型用的就是题目里这个 ollam,它的核心价…

2026/10/20 22:22:02 阅读更多 →
机器学习力场(MLFF)在大体系材料模拟中的落地实践与验证方法

机器学习力场(MLFF)在大体系材料模拟中的落地实践与验证方法

1. 项目概述:当DFT遇上大体系,机器学习力场不是“银弹”,而是“新工具箱”“机器学习力场——DFT难以覆盖的大体系现在能算了,但别跳过验证!”这个标题一出来,我立刻在好几个材料模拟群和计算化学论坛里看到…

2026/10/20 22:22:02 阅读更多 →
WebRTC拥塞控制核心:AimdRateControl原理与实战调优

WebRTC拥塞控制核心:AimdRateControl原理与实战调优

1. 项目概述:为什么一个“码率控制器”值得你花20分钟认真读完在WebRTC的实际工程落地中,90%的卡顿、花屏、延迟抖动问题,最终都指向同一个被低估的模块——AimdRateControl。它不是WebRTC协议栈里最炫酷的部分,没有SDP协商那么直…

2026/10/20 22:20:53 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →