简化的鸿蒙WiFi接口,仅需几行代码,简单易用!
使用鸿蒙原始WiFI API接口进行编程,整个过程稍显繁琐,为此我们对鸿蒙原始WiFi API接口做了一层封装,形成了一套更简单易用的接口。
简化后的API接口 STA模式
// 连接WiFi热点,并启动DHCP客户端;成功会返回一个netId,失败返回 -1 int ConnectToHotspot(WifiDeviceConfig* apConfig);
// 断开WiFi连接,以及停止DHCP客户端 void DisconnectWithHotspot(int netId);
AP模式
// 打开WiFi热点,同时启动DHCP服务器,成功返回SUCCESS int StartHotspot(const HotspotConfig* config);
void StopHotspot(void);
使用示例
STA模式,连接其他热点:
// setup your AP params WifiDeviceConfig apConfig = {0}; strcpy(apConfig.ssid, "ABCD"); strcpy(apConfig.preSharedKey, "12345678"); apConfig.securityType = WIFI_SEC_TYPE_PSK; int netId = ConnectToHotspot(&apConfig);
断开到WiFi热点的连接:
DisconnectWithHotspot(netId);
AP模式,开启WiFi热点:
// 准备AP的配置参数 HotspotConfig config = {0}; strcpy(config.ssid, "HiSpark-AP"); strcpy(config.preSharedKey, "12345678"); config.securityType = WIFI_SEC_TYPE_PSK; WifiErrorCode errCode = StartHotspot(&config); printf("StartHotspot: %d\n", errCode);
关闭热点:
StopHotspot();
当然,整个实现代码也不复杂,你可以再此基础之上参考着自己重新实现,或者进行一些修改。
完整demo代码,可以在本帖附件下载。
如何编译 本项目下有两个示例代码,源码位于demo目录下,编译请按照如下流程进行;
将附件代码解压到本地openharmony源码的顶层目录; 修改openharmony的build\lite\product\wifiiot.json文件:将"//applications/sample/wifi-iot/app"替换为"easy_wifi:app" 执行编译命令:python build.py wifiiot 如需编译AP模式的demo,请修改demo目录下的BUILD.gn文件;注释掉"wifi_connect_demo.c"行,放开"wifi_hotspot_demo.c"行;
鸿蒙原始WiFiService接口
使用鸿蒙原始WiFI API接口进行编程,STA模式需要使用原始STA接口以及一些DHCP客户端接口。
STA模式 鸿蒙WiFi STA模式的API接口有:
以及Hi3861 SDK的DHCP客户端接口:
AP模式
使用鸿蒙原始WiFI API接口进行编程,AP模式需要使用原始AP模式接口以及一些DHCP服务端接口。
鸿蒙WiFi STA模式的API接口有:
以及Hi3861 DHCP服务端接口:
项目地址:https://gitee.com/hihopeorg/easy_wifi
如果发现有什么错误,或者可以改进的地方欢迎在这里评论,或者到码云上提交 Issue
作者:许思维
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区https://harmonyos.51cto.com

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
看了 5种分布式事务方案,我司最终选择了 Seata,真香!
好长时间没发文了,最近着实是有点忙,当爹的第 43 天,身心疲惫。这又赶上年底,公司冲 KPI 强制技术部加班到十点,晚上孩子隔两三个小时一醒,基本没睡囫囵觉的机会,天天处于迷糊的状态,孩子还时不时起一些奇奇怪怪的疹子,总让人担惊受怕的。 本就不多的写文章时间又被无限分割,哎~ 打工人真是太难了。 本来不知道写点啥,正好手头有个新项目试着用阿里的 Seata 中间件做分布式事务,那就做一个实践分享吧! 介绍 Seata 之前在简单回顾一下分布式事务的基本概念。 分布式事务的产生 我们先看看百度上对于分布式事务的定义:分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 额~ 有点抽象,简单的画个图好理解一下,拿下单减库存、扣余额来说举例: 当系统的体量很小时,单体架构完全可以满足现有业务需求,所有的业务共用一个数据库,整个下单流程或许只用在一个方法里同一个事务下操作数据库即可。此时做到所有操作要么全部提交 或 要么全部回滚很容易。 分库分表、SOA 可随着业务量的不断增长,单体架构渐渐扛不住巨大的流量,此时就需要对数据库、表做 ...
- 下一篇
鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享
GN FAQ 翻译 (PS:花了将近半个小时,把GN的官方FAQ翻译了一遍,有错漏之处欢迎大家指正。) GN 的文档在哪里? GN有大量的内置的帮助文档,所以你可以运行gn help命令查阅,但是你同样可以在“参考页面”(PS:附件文档包中的gn-reference.pdf)查阅全部帮助文档。你同样可以查阅“快速入门指南”(PS:附件文档包中的gn-quick_start.pdf)和“语言和操作细节”(PS:附件文档包中的gn-language.pdf)。 我可以生成XCode或者Visual Studio项目吗? 你可以用一次构建(PS: gn是两阶段构建的工具)为XCode,Visual Studio,QTCreator和Eclipse生成带有文件列表和目标的骨架(或包装)项目,但是使用 Ninja执行实际的构建(PS:第二次构建)。你不能像使用GYP cloud那样生成真的看起来和这些工具直接创建的一样的项目。 了解详细内容,请运行gn help gen。 我如何生成一般的构建变种(build variants)? 在GN中,参数在构建目录中,而不是在全局环境中。要编辑你的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS关闭SELinux安全模块
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Hadoop3单机部署,实现最简伪集群