集成硬件
蓝牙
低功耗蓝牙(BLE,Bluetooth Low Energy)是一种专为低功耗应用设计的蓝牙技术,起源于蓝牙4.0规范。与传统蓝牙相比,BLE显著降低了能耗,就像普通蓝牙是 “常开的大灯泡”,BLE 是”人来才亮的感应小夜灯“,耗电特别少,特别适合智能手环、智能家居传感器、蓝牙温湿度计这类需要长时间用电池的设备,广泛应用于健康监测、智能家居、物联网等领域。
BLE核心特点
- 超省电:一节纽扣电池能让设备跑好几个月甚至几年,不用频繁充电 / 换电池;
- 连得快:不用复杂配对,手机靠近设备几秒就能连上,像扫码付款一样即连即用;
- 距离够用:日常用的话,10 米内信号都稳,空旷地方最远能到 100 米,覆盖家里 / 办公室完全够。
BLE通信的基本流程
广播与扫描(喊人):BLE 设备会一直 “小声喊”:“我在这!我叫 XX!”,手机 就像 “听声音的人”,扫描周围有没有设备在喊;广播帧包含设备名称、设备地址、服务等信息,参考链接:官方广播通信协议
连接建立(搭话):手机听到某个设备的喊声后,主动说 “我要和你连”,双方商量好 “怎么聊、聊多快”,就建立了连接;
服务发现(问能聊啥):连接后,手机先问设备:“你能提供啥功能?(比如测心率、控灯光)”
数据交换(正式聊天):双方通过GATT协议进行数据交换,包括读数据、写数据等操作,比如手环把心率数据传给手机,手机给智能灯发 “开灯” 指令。
操作流程
你在页面上操作蓝牙的功能,就像用手机控制蓝牙设备的 “遥控器”,每个操作类型对应一个具体动作
- 从画布中选中按钮进入流程图后。
- 点击“+”添加动作,在右侧的动作列表中选择动作类型为
硬件动作,并将硬件类型设置为蓝牙。 - 选择操作类型
| 操作类型 | 说明 |
|---|---|
| 蓝牙扫描状态监听 | 实时盯着:扫描开始了吗?停止了吗?停止了要不要自动再扫? 1. 开始扫描:扫描开始时可更新变量,用于触发相关逻辑或标记扫描状态。 2. 停止扫描:扫描停止时可更新变量,并可配置是否自动重新扫描设备。 3. 动作类型:选择蓝牙扫描状态监听后,动作类型变为数据监听类型,可独立配置监听到扫描开始或停止事件后触发的流程,不影响主流程的继续执行。 4. 功能作用:确保扫描状态变化被实时捕获,并与页面变量或其他流程逻辑同步更新,实现主流程与监听流程的并行处理。 |
| 发现设备监听 | 扫描时实时筛选设备:只捡我想要的(比如只找叫 “智能手环 001” 的设备),还能存到变量里 1. 变量接收:可配置列表变量,用于接收扫描到的符合条件的设备数据。数据为Map结构其内容如下 {"name": "设备名称","rssi":"信号强度","mac": "设备地址", "raw": "设备原始对象"} 2. 蓝牙匹配模式: 单设备匹配模式:根据指定条件匹配一个设备,匹配条件包括无条件、蓝牙名称、MAC 地址或包含蓝牙名称。 多设备匹配模式:可同时配置多种匹配条件,接收多个符合条件的设备。 3. 动作类型:选择“发现设备监听”后,动作类型变为数据监听类型,可独立配置监听到符合条件设备后的流程,不影响主流程的继续执行。 4. 功能作用:确保扫描到的设备信息被实时捕获,并可用于页面变量或流程逻辑的更新,实现主流程与监听流程的并行处理。 |
| 蓝牙连接状态监听 | 实时盯着:设备连没连上?断没断开?断开了要不要自动重连? 1. 连接成功:可更新变量。 2. 断开连接:可更新变量,并可配置是否自动重连设备。 3. 动作类型:选择蓝牙连接状态监听后,动作类型变为数据监听类型,可独立配置监听到连接或断开事件后触发的流程,不影响主流程的继续执行。 4.功能作用:确保蓝牙状态变化被实时捕获,并与页面变量或其他流程逻辑同步更新,实现主流程与监听流程的并行处理。 |
| 蓝牙扫描 | 让手机 “听” 周围所有 BLE 设备的 “喊声”,可以设置听多久(比如扫 10 秒),一般打开页面就扫 |
| 蓝牙连接 | 选中一个设备(按蓝牙名称 / 蓝牙设备地址 / 蓝牙设备对象),和它建立 “聊天通道” |
| 断开连接 | 主动关掉和某个设备的 “聊天通道” |
| 发送数据 | 给连接的设备发指令(比如 “aa,55”) 1. 发送内容可为固定值,也可绑定变量以发送变量中的内容 2. 如果未指定 服务 UUID 或 写特征 UUID,就发给所有能接收的通道 |
| 接收数据 | 接收已连接的设备发来的消息(比如 [“aa,55”]) 1. 可通过配置蓝牙通信协议,根据协议内容自动更新页面变量;也可选择自定义代码块,以实现自定义的数据处理逻辑 2. 接收的数据默认为 16 进制字符串列表,例如: ["aa", "55"]3. 选择“接收数据”后,动作类型将变为数据监听类型,可进行额外的监听配置 |
| 接收广播数据 | 不用连接,直接听设备 “喊” 的内容(比如设备没连时广播自己的电量) 1.可通过配置蓝牙通信协议,根据协议内容自动更新页面变量;也可选择自定义代码块,以实现自定义的数据处理逻辑 2.接收的数据默认为 16 进制字符串列表,例如: ["aa", "55"] |
| 停止扫描 | 让手机停止 “听” 周围设备的喊声 |
示例
假设你要做一个 “智能手环管理 APP”,核心需求如下:
- 打开 APP 自动扫:不用手动点,打开就搜周围的智能手环;
- 列表清晰看:只显示手环设备,实时展示名称、信号、连接状态;
- 点一下就连接:选中心仪的手环,一键连、断,还能自动处理连接问题。
前置准备
硬件:支持 BLE 的智能手环(名称包含 “智能手环”,比如 “智能手环 001”“运动手环 Pro”);
平台参数:无需额外配置蓝牙核心参数,按操作步骤选功能即可;
页面准备:在平台画布拖 3 类组件:
状态提示:顶部「提示栏」(显示扫描 / 连接状态);
设备列表:「列表组件」(展示手环名称、MAC 地址、信号强度);
操作按钮:每个列表项配「连接 / 断开」按钮,底部加「重新扫描」按钮。
下面是你操作的完整流程:
步骤 1:打开 APP,自动扫描周边 BLE 设备
在 APP 首页的「页面初始化」事件中配置流程
1.加第一个动作「发现设备监听」
- 操作类型选「发现设备监听」→ 动作类型默认「数据监听类型」;
- 配置「变量接收」:新建列表变量 “bluetoothDeviceList”(存手环数据);
- 配置「蓝牙匹配模式」:选「多设备匹配模式」→ 匹配条件选「包含蓝牙名称」→ 输入 “智能手环”→ 确定;
2.加第二个动作:「扫描状态监听」
操作类型选「蓝牙扫描状态监听」→ 动作类型默认「数据监听类型」;
配置「停止扫描」事件:绑定变量 “isScanning”
同时在「提示栏」绑定变量 “isScanning”,显示 “正在扫描蓝牙设备...”;
3.加第三个动作「蓝牙扫描」
- 操作类型选「蓝牙扫描」→ 配置扫描时长 30 秒 → 确定;
✅ 最终效果:打开 APP 后,提示栏显示 “正在扫描蓝牙设备...”
步骤 2:页面实时显示扫描到的手环列表
1.把「列表组件」和变量 “bluetoothDeviceList” 绑定;
2.配置列表项显示内容:
左半部分:设备名称(取变量里的 “name” 字段)、MAC 地址(取 “mac” 字段);
右半部分:信号强度(取 “rssi” 字段,格式显示为 “信号:-60dBm”);
按钮显示:默认显示 “未连接”(绑定连接状态变量,初始为 “未连接”);
✅ 最终效果:扫描过程中,列表实时更新,比如先出现 “智能手环 001(MAC:AA:BB:CC:DD:EE:FF) 信号:-58dBm”,接着出现 “智能手环 002”,非 “智能手环” 的设备不显示。
步骤 3:点击设备,连接手环
在「未连接」按钮的触发流程里配置
1.加第一个动作:「蓝牙连接」
- 操作类型选「蓝牙连接」→ 连接方式选「指定蓝牙名称」→ 绑定当前列表项的 “name” 变量(比如 “智能手环 001”)→ 确定;
2.加第二个动作:「连接状态监听」
操作类型选「蓝牙连接状态监听」→ 动作类型默认「数据监听类型」;
配置「连接成功」事件:
- 绑定变量 “isConnnect”, 按钮文本变量更新为 “已连接”;
配置「连接失败」事件:
- 绑定变量 “isConnnect”, 按钮文本变量更新为 “未连接”;
3.新增「接收数据」动作
- 开始监听手环的心率数据(无需额外配置,默认接收 16 进制数据);
✅ 最终效果:点 “未连接” 后,成功则按钮变 “已连接”。
新手避坑提醒
- 「发现设备监听」一定要设匹配条件:不然会显示所有蓝牙设备(比如耳机、音箱),列表杂乱;
- 连接方式选对:优先用 “MAC 地址” 连接(比名称更精准),如果手环名称唯一,用 “指定蓝牙名称” 也可以;
- 监听动作不用手动停:「接收数据」「连接状态监听」会随「断开连接」自动停止,不用额外加 “停止监听” 动作;
- 扫描时长别太长:30 秒足够日常使用,太长会耗手机电量,用户体验不好。

串口
串口就是硬件之间传数据的一种方式,特点是一根线发数据、另一根线收数据,简单还能传很远。对比并行传输最多只能传 20 米,串口最远能传到 1200 米,而且是异步通信,能一边发一边收,超方便。
想要两个设备通过串口正常传数据,必须把波特率、数据位、停止位这三个核心参数设成一样的,平台内这三个参数都有默认值,不用自己瞎调。
核心参数如下:
1. 波特率
简单说就是数据传输的快慢,平台默认是 115200,这个速度日常用完全够,不用改。
不用纠结专业说法,记住波特率越高传得越快,发送方与接收方的波特率必须一样。
2. 数据位
就是每次传数据时,实际有效的数据位数,平台默认是 8 位。
日常传文字、普通数据用 8 位就对了,只有传特别简单的标准文字时会用 6/7 位,咱们不用管。
3. 停止位
就是一个数据包传完的 “结束标记”,平台默认是 1 位。
因为不同设备的时钟有点小偏差,传数据可能不同步,停止位不光告诉对方 “这个包传完了”,还能让设备校准同步,保证传数据不丢包。
操作流程
- 先在画布上点选按钮,进入对应的流程图编辑页面;
- 点页面上的
+号添加动作,在右侧弹出的动作列表里,找到硬件动作,再点里面的串口就行; - 选择你要实现的操作类型
| 操作类型 | 说明 |
|---|---|
| 插入监听 | 盯着串口设备的 “插上” 动作,设备一插电脑上,就自动执行你设置的操作,也能自己写代码块定制操作 |
| 拔出监听 | 盯着串口设备的 “拔下” 动作,设备一从电脑上拔走,就自动执行你设置的操作,也能自己写代码块定制操作 |
| 扫描 | 自动找电脑上已经连好的串口设备 |
| 连接 | 和串口设备建立连接,选这个操作时,需要选择连接方式,参考如下 1. 供应商 ID 和产品 ID,设备自带的标识,按实际填就行 2. 设备名称 3. 序列号 4. 数组索引 |
| 发送数据 | 给串口设备发数据,注意数据要填16 进制格式,多组数据之间用英文逗号,隔开,比如要发 aa 和 55,就填aa,55 |
| 接收数据 | 接收串口设备发过来的数据,想把收到的数据显示在页面上,就加个关联变量就行;默认收到的数是16 进制的字符串数组,直接用就行 |
| 断开连接 | 把已经连好的串口设备断开,不用填其他信息 |
示例
假设你要做一个 “串口温湿度监测 APP”,核心需求如下:
- 快速连设备:扫描、连接传感器,断开也方便;
- 数据能看能用:实时显示传感器传来的温度、湿度(比如 “25℃、50% RH”);
前置准备
- 硬件:串口温湿度传感器(带说明书,需找到「供应商 ID、产品 ID」和「指令 16 进制码」,比如 “读取温湿度” 指令01,03,00,00,00,01,84,0A;
- 页面准备,在平台画布
- 拖 3 个组件「扫描设备」按钮、「连接设备」按钮、「温湿度显示框」(用来展示实时数据)
- 再拖 1 个「发送指令」按钮和 1 个「输入框」(用来填 16 进制指令)。
下面是你操作的完整流程:
步骤 1:扫描已连接的传感器(对应 APP 需求 “自动找设备”)
- 点击画布上的「扫描设备」按钮,选「进入流程图」;
- 点流程图里的+号→选「硬件动作」→「串口」;
- 操作类型选「扫描」→点击「确定」;
✅ 效果:点按钮后,平台会列出所有已连接的串口设备,后续连接直接用扫描结果。
步骤 2:一键连接传感器(对应 APP 需求 “一键连接”)
- 在「连接设备」按钮的流程图里,点+号→「硬件动作」→「串口」;
- 操作类型选「连接」;
- 右侧配置栏填:供应商 ID(传感器说明书上找)、产品 ID(同上)→「确定」;
✅ 效果:填对 ID 后点按钮,平台和传感器建立连接,后续就能发收数据了。
步骤 3:实时显示温湿度(对应 APP 需求 “实时看数据”)
- 在连接动作的后面,点+号→「硬件动作」→「串口」;
- 操作类型选「接收数据」;
- 关键步骤:添加「关联变量」(比如命名为 “tempHumidityData”),把接收的数据绑定到「温湿度显示框」;
✅ 效果:连接成功后,显示框会实时更新 “温度:XX℃ 湿度:XX% RH”。
新手避坑提醒
- 连接时必须填对「供应商 ID 和产品 ID」,填错连不上(找传感器说明书或外壳上的标识);
- 温湿度显示要绑定「关联变量」,不然收不到数据;
- 设备收发的串口参数(波特率等)要保持一致,改了容易传数据出错。

注意:
- 串口不支持IOS
HID
HID 就是专门给 “人体接口设备” 用的传数据方式,简单说,就是键盘、鼠标、游戏手柄这些你能亲手操作的设备。
它的好处是 “即插即用”:设备插上去就能用,不用装额外驱动,协议已经标准化了,兼容性超棒,日常用在游戏手柄、键盘、鼠标这些设备上最多。
核心要点
HID 的核心操作和上述的串口很像,关键记住 3 点:
- 传数据要填 16 进制格式,多组数据用英文逗号隔开(比如aa,55,别用中文逗号);
- 接收数据默认是 16 进制字符串数组(比如["12","34"]),绑个变量就能在页面显示;
- 连接设备必须填 “供应商 ID” 和 “产品 ID”(设备说明书 / 外壳上有,相当于设备的 “身份证”)。
示例
假设你要做一个 “USB 游戏手柄控制 APP”,核心需求如下:
- 打开 APP,点 “扫描设备” 就能找到已插在手机 / 电脑上的 USB 游戏手柄;
- 选中手柄,输入它的供应商 ID 和产品 ID,一键连接;
- 连接后,能实时接收手柄的操作数据(比如按了 A 键、摇杆向左推),在 APP 页面显示操作状态。
前置准备
硬件:USB 游戏手柄(带说明书,需找到「供应商 ID(VID)」和「产品 ID(PID)」);
页面准备:在平台画布拖 4 个组件:
操作按钮:「扫描设备」「连接设备」「断开连接」;
状态显示:「设备列表框」(显示扫描到的手柄)、「操作状态框」(显示手柄按键 / 摇杆操作)。
下面是你操作的完整流程:
步骤 1:扫描已连接的 USB 游戏手柄
需求:点「扫描设备」按钮,APP 自动找插好的 HID 设备(只显示游戏手柄相关);
实操步骤(在「扫描设备」按钮的流程图里配置):
- 点流程图+号→选「硬件动作」→「USB-HID」;
- 操作类型选「扫描」→确定;
- 新建列表变量 “hidDeviceList”,把扫描到的设备数据存进去(数据包含设备名称、供应商 ID、产品 ID);
- 把「设备列表框」和变量 “hidDeviceList” 绑定,显示设备名称和供应商 ID / 产品 ID;
✅ 最终效果:点按钮后,列表框实时显示已连接的 USB 游戏手柄,比如 “游戏手柄 X3(VID:1234,PID:5678)”,支持插拔检测(拔了自动从列表消失,插上自动显示)。
步骤 2:一键连接游戏手柄
需求:选中列表里的手柄,输入 VID 和 PID,点「连接设备」就能建立连接,连成功有提示;
实操步骤(在「连接设备」按钮的流程图里配置):
- 点流程图+号→「硬件动作」→「USB-HID」;
- 操作类型选「连接」;
- 右侧配置栏填:供应商 ID(绑定列表选中设备的 VID 变量)、产品 ID(绑定选中设备的 PID 变量)→确定;
- 加 “提示动作”:连接成功后,APP 弹出 “已连接游戏手柄 X3”,「操作状态框」显示 “等待操作...”;
✅ 最终效果:填对 VID/PID 后点按钮,瞬间建立连接,提示清晰,后续就能接收手柄操作数据了。
步骤 3:接收手柄操作数据,实时显示状态
需求:连接后,按手柄的按键、推摇杆,APP 能实时显示 “按了 A 键”“摇杆向左” 等状态;
实操步骤(在「连接设备」动作后面继续加流程):
点+号→「硬件动作」→「USB-HID」;
操作类型选「接收数据」;
关键步骤:添加关联变量 “handleData”,把接收的 16 进制数据绑定到「操作状态框」;
简单说明:手柄的每个操作对应固定的 16 进制码(比如 A 键对应01,00,摇杆向左对应02,01),可以在「操作状态框」设置条件:
当 “handleData” 等于["01","00"]时,显示 “当前操作:按下 A 键”;
当 “handleData” 等于["02","01"]时,显示 “当前操作:摇杆向左”;
✅ 最终效果:连接后,按手柄任何按键、推摇杆,「操作状态框」都会实时更新对应的操作描述,不用手动刷新。
新手避坑提醒
- 连接必须填对 VID 和 PID:这两个码是设备的 “身份证”,填错绝对连不上,一定要从手柄说明书 / 外壳上找准确值;
- 发送数据格式别错:只能是 16 进制 + 英文逗号,比如正确aa,55,错误aa,55(中文逗号)、aabb(没分隔);
- 接收数据要绑定变量:不绑定变量的话,收到的数据没法在页面显示,等于白收;
- 扫描后记得过滤设备:如果扫描到很多 HID 设备(比如同时插了键盘和手柄),可以在「设备列表框」设置筛选条件,只显示包含 “游戏手柄” 的设备,避免杂乱。

注意:
- HID不支持IOS
- 当操作类型为连接时,必须填入 厂商id 和 产品id
TCP
TCP 通信就是设备之间通过网络(局域网 / 互联网)传数据的一种方式,分 “客户端” 和 “服务端” 两个角色,就像打电话:
服务端:相当于 “电话座机”,得先开机(启动服务)等着,别人才能打进来;
客户端:相当于 “手机”,要知道座机的 “号码”(IP 地址)和 “分机号”(端口号),才能主动拨号连接;
核心特点:连接稳定、数据不丢包,适合需要可靠传输的场景(比如设备控制指令、数据采集)。
核心要点
- 连接必须知道 “目标信息”:客户端要填服务端的 IP + 端口;服务端要设自己的端口(相当于 “接听号码”);
- 接收数据要 “监听”:连接后得开启接收动作,才能实时收到对方发的数据,默认是16 进制字符串格式。
操作流程
- 先在画布上点选按钮,进入对应的流程图编辑页面;
- 点页面上的
+号添加动作,在右侧弹出的动作列表里,找到硬件动作,再点里面的**TCP Server(服务端) 或 TCP Client(客户端)**就行; - 选择你要实现的操作类型
| 操作类型 | 适用角色 | 说明 |
|---|---|---|
| 监听 | 仅服务端 | 服务端 “打开监听模式”,相当于座机开通来电功能,填好自己的 “地址 + 端口”(比如本地 IP 192.168.1.101 + 端口 8080),就能等着客户端主动连过来,是服务端启动的核心操作 |
| 连接 | 仅客户端 | 客户端 “主动拨号”,相当于用手机打座机,必须知道服务端的 “目标地址 + 端口”(比如 192.168.1.100:8080),填对了才能建立连接,是客户端连服务端的第一步 |
| 关闭 | 客户端、服务端都能用 | 相当于 “挂电话”,客户端用就是断开和服务端的连接,服务端用就是关闭监听、断开所有已连的客户端,之后不能再收发数据 |
| 发送数据 | 客户端、服务端都能用 | 给对方发信息,数据必须按 “16 进制 + 英文逗号分隔” 的格式填(比如aa,55) |
| 接收数据 | 客户端、服务端都能用 | 接收对方发来的信息,客户端收服务端的反馈数据,服务端收客户端的请求数据,收到的都是 16 进制格式的字符串(比如["00","01"]) |
示例
客户端模式(主动连服务端,比如连工业 TCP 设备)
前置准备
环境:两台设备在同一局域网(比如连同一个 Wi-Fi),或知道公网服务端的 IP + 端口;
页面准备:在平台画布拖组件:
「连接 」按钮、「断开」按钮、「数据收发记录框」;
「IP 输入框」(填服务端 IP)、「端口输入框」(填服务端端口)、「发送数据输入框」、「发送」按钮;
步骤 1:配置客户端连接参数,一键连接
需求:输入服务端 IP(比如 192.168.1.100)和端口(比如 8080),点「连接」按钮就能建立 TCP 连接;
实操步骤(在「连接」按钮的流程图里配置):
- 点流程图+号→选「硬件动作」→「TCP Client」;
- 操作类型选「连接」;
- 右侧配置栏填:服务端 IP(绑定「IP 输入框」的变量)、服务端端口(绑定「端口输入框」的变量,数字格式)→确定;
✅ 最终效果:填对 IP 和端口后点按钮,几秒内建立连接。
步骤 2:给服务端发送数据(发控制指令)
需求:连接后,在输入框填指令(比如文本 “启动设备” 或 16 进制 “aa,55”),点「发送」按钮就能发给服务端;
实操步骤(在「发送」按钮的流程图里配置):
- 先加 “判断动作”:如果未连接服务端,弹出提示 “请先连接服务端”(避免无效操作);
- 连接正常则继续:点+号→「网络动作」→「TCP」→「客户端」;
- 操作类型选「发送数据」;
- 配置发送内容:绑定「发送数据输入框」的变量,选择数据格式(文本 / 16 进制,比如选 16 进制就填aa,55)→确定;
- 同步记录:「数据收发记录框」显示 “发送:aa,55”(自动带时间戳更清晰);
✅ 最终效果:点发送后,数据立刻传给服务端,记录框实时更新发送内容,未连接时会拦截操作。
步骤 3:接收服务端反馈数据,实时显示
需求:服务端发数据过来(比如设备状态 “正常”,16 进制00,01),APP 能实时显示在记录框;
实操步骤(在「连接」动作后面继续加流程):
- 点+号→「网络动作」→「TCP」→「客户端」;
- 操作类型选「接收数据」;
- 关键步骤:添加关联变量 “clientRecvData”,选择数据格式(和服务端一致,比如 16 进制);
- 绑定记录框:当收到数据时,「数据收发记录框」追加显示 “接收:00,01(设备正常)”(可手动设置 16 进制与文本的对应关系);
✅ 最终效果:服务端一发数据,记录框就自动更新,不用手动刷新,数据格式清晰。
步骤 4:主动断开连接
需求:点「断开」按钮,关掉和服务端的连接,状态同步更新;
实操步骤(在「断开」按钮的流程图里配置):
- 点+号→「网络动作」→「TCP」→「客户端」;
- 操作类型选「关闭」→确定;
- 配置后续动作:
- 「数据收发记录框」显示 “已断开与服务端的连接”;
- 「连接」按钮恢复可点击状态,「发送」按钮置灰;
✅ 最终效果:点断开后,瞬间终止连接,不再接收数据,按钮状态自动切换。
新手避坑提醒
- 连接前先确认网络:客户端和服务端必须在同一网络(局域网),或服务端有公网 IP,否则连不上;
- 端口号别乱填:要填 0-65535 之间的未被占用端口(常用 8080、9090,避免用 80、443 等知名端口);
- 数据格式要一致:客户端和服务端的发送 / 接收格式必须统一(比如客户端发 16 进制,服务端也要按 16 进制接收),否则会出现 “乱码”。

UDP
UDP 通信也是设备之间通过网络(局域网 / 互联网)传数据的方式,和 TCP 最大的区别是:不用先建立稳定连接,直接发数据,就像 “对讲机” 或 “广播”。
速度快、延迟低,但可能丢包(比如环境干扰),适合对实时性要求高、偶尔丢包不影响的场景(比如设备发现、实时状态广播、简易控制指令)。
与TCP主要的区别如下
没有 “客户端” 和 “服务端” 的严格区分,任何设备都能当 “发送方” 或 “接收方”;
发送方不用等对方回应,直接把数据发出去(类似喊口号);
接收方只要打开 “监听”,就能收到范围内的所有 UDP 数据(类似打开对讲机听广播)。
核心要点
- 监听是接收数据的前提:想收数据,必须先开启 “监听”(绑定一个端口,相当于打开对讲机的接收频道);
- 发送数据不用连:知道目标设备的 IP + 端口(或局域网广播地址),直接填数据就能发,不用先建立连接;
- 数据格式和 TCP 一致:发送数据支持16 进制(多组用英文逗号分隔,比如aa,55),接收数据默认是 16 进制字符串数组(比如["00","01"])。
操作流程
- 先在画布上点选按钮,进入对应的流程图编辑页面;
- 点页面上的
+号添加动作,在右侧弹出的动作列表里,找到硬件动作,再点里面的UDP就行; - 选择你要实现的操作类型
| 操作类型 | 说明 |
|---|---|
| 监听 | 设备 “打开接收频道”,相当于打开对讲机的收听功能,填好自己的 “本地端口”(比如 8888,UDP 不用填本地 IP,平台自动识别),就能收到局域网内所有发往这个端口的 UDP 数据,是接收数据的前提操作 |
| 关闭 | 相当于 “关掉接收频道”,停止 UDP 监听,之后不能再接收数据;如果之前在发送数据,发送功能不受影响(UDP 发送不用监听),想重新接收只需再次开启 “监听” |
| 发送数据 | 给目标设备 “直接发消息”,不用先建立连接(相当于对讲机喊口号),知道对方的 IP + 端口(或填广播地址 255.255.255.255 发给所有设备),数据按 “16 进制 + 英文逗号分隔” 填(比如aa,55) |
| 接收数据 | 收听对方发来的 “消息”,开启监听后自动接收,不管是点对点发送的 data,还是局域网广播的 data,收到的都是 16 进制格式的字符串数组(比如["00","01"]) |
示例
做一个 “UDP 设备广播通信 APP”
核心需求
- 支持 “监听模式”:绑定本地端口,实时接收局域网内所有 UDP 设备发来的广播数据(比如设备心跳、状态通知);
- 支持 “发送模式”:输入目标 IP + 端口(或用广播地址),发送控制指令或广播消息,数据格式可选文本 / 16 进制;
前置准备
- 环境:两台设备在同一局域网(比如连同一个 Wi-Fi),知道目标设备的 UDP 端口(或用广播地址 255.255.255.255,能发给局域网所有设备);
- 页面准备:在平台画布拖组件
- 开启监听」按钮、「关闭监听」按钮、「数据收发记录框」(显示时间戳、发送方 / 接收方、数据内容);
- 「目标 IP 输入框」(填对方 IP 或广播地址 255.255.255.255)、「目标端口输入框」(填对方 UDP 端口,比如 8888)、「发送数据输入框」、「数据格式选择器」(文本 / 16 进制)、「发送」按钮。
步骤 1:开启监听,接收 UDP 数据
需求:点「开启监听」按钮,绑定本地端口(比如 8888),APP 开始接收局域网内所有发往该端口的 UDP 数据;
实操步骤(在「开启监听」按钮的流程图里配置):
- 点流程图+号→选「硬件动作」→「UDP」;
- 操作类型选「监听」;
- 右侧配置栏填:本地端口(比如 8888,绑定自定义变量 “localPort”,数字格式)→确定;
- 关联接收动作:在「监听」动作后面继续加「接收数据」操作(UDP 监听和接收需绑定同一端口);
- 操作类型选「接收数据」;
- 添加关联变量 “udpRecvData”,选择数据格式(默认 16 进制,可按需切换文本);
- 绑定记录框:收到数据时,记录框追加显示 “[20:30:45] 接收(来自 XX.XX.XX.XX:XXXX):aa,55(设备心跳)”(XX 是发送方 IP 和端口,平台自动获取,可手动设置 16 进制与文本对应关系);
✅ 最终效果:点按钮后,APP 进入监听状态,局域网内任何设备往 8888 端口发 UDP 数据,记录框都能实时显示,发送方信息清晰可见。
步骤 2:发送 UDP 数据(广播 / 点对点)
需求:输入目标 IP、端口,填好数据(比如文本 “查询状态” 或 16 进制01,03),点「发送」按钮就能直接发,不用先连接;
实操步骤(在「发送」按钮的流程图里配置):
先加 “判断动作”:如果未开启监听,弹出提示 “建议先开启监听,避免错过响应数据”(可选,UDP 发送无需监听,但开启后能收回应);
继续添加动作:点+号→「网络动作」→「UDP」;
操作类型选「发送数据」;
右侧配置栏填:
目标 IP:绑定「目标 IP 输入框」的变量(比如 255.255.255.255,局域网广播);
目标端口:绑定「目标端口输入框」的变量(比如 8888);
发送内容:绑定「发送数据输入框」的变量,选择数据格式(和「数据格式选择器」绑定,比如选 16 进制就填01,03);
✅ 最终效果:点发送后,数据立刻通过 UDP 发出,不用等对方回应,记录框实时更新发送内容,广播模式下局域网所有开启 8888 端口监听的设备都能收到。
步骤 3:关闭监听,停止接收数据
需求:点「关闭监听」按钮,APP 停止 UDP 监听,不再接收数据,状态同步更新;
实操步骤(在「关闭监听」按钮的流程图里配置):
点+号→「网络动作」→「UDP」;
操作类型选「关闭」→确定(关闭后自动停止「接收数据」动作);
配置后续动作:
「数据收发记录框」显示 “已关闭 UDP 监听,本地端口:8888”;
「开启监听」按钮恢复可点击状态,「发送」按钮保持可用(UDP 发送无需监听);
✅ 最终效果:点按钮后,APP 停止接收 UDP 数据,记录框明确提示状态,发送功能不受影响,想继续接收只需重新开启监听。
新手避坑提醒
- 监听和发送端口可不同:UDP 不用绑定同一端口,比如用 8888 监听,用 8889 发送也可以,但接收目标设备数据时,要确保对方发往的端口和你监听的端口一致;
- 广播地址用法:局域网广播填 255.255.255.255,能发给同一 Wi-Fi 下所有设备;想点对点发送,就填对方设备的具体 IP(比如 192.168.1.103);
- 数据格式要统一:发送方和接收方的格式必须一致(比如发送方发 16 进制,接收方也要按 16 进制解析),否则会显示 “乱码”;
- 允许偶尔丢包:UDP 本身不保证数据一定送达,如果是重要数据(比如控制指令),可以多发送几次,或在 APP 里加 “重发” 按钮;
- 端口别冲突:本地监听的端口不能和其他 APP 重复,常用 8888、9999、5000 等,避免用 80、443、8080 等 TCP 常用端口,减少冲突概率。
CoAP
CoAP 通信是专门给物联网设备(比如智能灯、温湿度传感器、智能开关)设计的传数据方式,就像 “物联网专属的简易 HTTP”,设备之间通过网络(局域网 / 互联网)传数据,特点是数据量小、速度快、耗电低,特别适合传感器、智能硬件这些 “小设备”。
它和之前的 TCP/UDP、HID 的核心区别:
不用复杂配置,设备只要知道对方的 “IP + 端口”,就能建立连接;
专门针对物联网场景优化,比如传感器每隔几秒发一次温湿度数据,用 CoAP 最省设备电量。
核心要点
- 连接要填目标设备的 “IP + 端口”(物联网设备一般有固定端口,比如 5683 是 CoAP 默认端口);
- 发送数据用 16 进制格式,多组数据用英文逗号分隔(比如01,00“开灯”、01,01“关灯”);
- 接收数据默认是 16 进制字符串数组(比如["02","25"]代表 “温度 25℃”)。
操作流程
- 先在画布上点选按钮,进入对应的流程图编辑页面;
- 点页面上的
+号添加动作,在右侧弹出的动作列表里,找到硬件动作,再点里面的UDP就行; - 选择你要实现的操作类型
| 操作类型 | 说明 |
|---|---|
| 连接 | 设备 “打通专属通信通道”,相当于给智能灯、传感器拨专属电话,填好目标设备的 “IP + 端口”(CoAP 默认端口 5683),建立稳定连接后才能发控制指令、收状态反馈,是所有操作的前提 |
| 关闭 | 相当于 “挂断通信通道”,断开和目标设备的 CoAP 连接,之后不能再发指令、收反馈;想重新操作,必须再次 “连接” 设备 |
| 发送数据 | 给已连接的设备 “发控制指令”,比如让智能灯开灯、传感器上报数据,数据按 “16 进制 + 英文逗号分隔” 填(比如01,00“开灯”、02,32“亮度 50%”),只有连接成功后才能发,指令精准直达 |
| 接收数据 | 接收已连接设备的 “状态反馈”,比如智能灯的 “已开灯”、传感器的 “温度 25℃”,连接后自动接收,收到的是 16 进制字符串数组(比如["01","00","00"]“开灯成功”) |
示例
做一个 “CoAP 智能灯控制 APP“
核心需求
- 输入智能灯的 IP 和端口(比如 192.168.1.105:5683),一键连接设备;
- 连接后,能给智能灯发指令(开灯、关灯、调亮度),指令用 16 进制格式;
- 实时接收智能灯的状态反馈(比如 “已开灯”“亮度 50%”),在 APP 页面显示;
前置准备
硬件:支持 CoAP 协议的智能灯(带说明书,需知道设备 IP、端口,以及控制指令的 16 进制码,比如开灯01,00、关灯01,01、亮度 50%02,32);
环境:手机 / 电脑和智能灯在同一局域网(比如连同一个 Wi-Fi);
页面准备:在平台画布拖组件:
连接相关:「IP 输入框」「端口输入框」「连接设备」按钮「断开连接」按钮;
控制相关:「开灯」「关灯」「调亮度 50%」三个功能按钮;
状态显示:「设备状态框」(显示 “未连接”“已连接”“已开灯” 等)。
下面是你操作的完整流程:
步骤 1:输入参数,一键连接智能灯
需求:填智能灯的 IP(比如 192.168.1.105)和端口(比如 5683),点「连接设备」按钮建立 CoAP 连接;
实操步骤(在「连接设备」按钮的流程图里配置):
点流程图+号→选「硬件动作」→「CoAP」;
操作类型选「连接」;
右侧配置栏填:目标 IP(绑定「IP 输入框」变量)、目标端口(绑定「端口输入框」变量,默认 5683 可直接填)→确定;
加 “状态提示”:
连接中:「设备状态框」显示 “正在连接智能灯...”;
连接成功:弹出提示 “已连接智能灯”,「设备状态框」显示 “已连接(等待操作)”;
连接失败:弹出提示 “连接失败,请检查 IP / 端口是否正确,或设备是否在线”;
✅ 最终效果:填对参数后点按钮,几秒内建立连接,失败有明确排查方向,新手也能搞定。
步骤 2:给智能灯发送控制指令(开灯 / 关灯 / 调亮度)
需求:连接成功后,点「开灯」「关灯」等按钮,APP 自动发送对应 16 进制指令,智能灯执行操作;
实操步骤(以「开灯」按钮为例,其他按钮流程一致):
- 点「开灯」按钮→进入流程图;
- 先加 “判断动作”:如果未连接智能灯,弹出提示 “请先连接设备”(避免无效操作);
- 连接正常则继续:点+号→「网络动作」→「CoAP」;
- 操作类型选「发送数据」;
- 右侧配置栏填:发送内容(固定 16 进制指令01,00,对应开灯操作)→确定;
- 同步状态:「设备状态框」显示 “正在发送开灯指令...”;
✅ 最终效果:点「开灯」按钮后,智能灯立刻亮起,其他按钮同理 —— 点「关灯」发01,01指令,灯熄灭;点「调亮度 50%」发02,32指令,灯亮度变为 50%。
步骤 3:接收智能灯状态反馈,实时显示
需求:智能灯执行操作后,会发反馈数据(比如开灯成功反馈01,00,00),APP 实时显示在状态框;
实操步骤(在「连接」动作后面继续加流程):
点+号→「网络动作」→「CoAP」;
操作类型选「接收数据」;
关键步骤:添加关联变量 “coapRecvData”,把接收的 16 进制数据绑定到「设备状态框」;
设置条件对应:
当 “coapRecvData” 等于["01","00","00"]时,显示 “状态:已开灯”;
当 “coapRecvData” 等于["01","01","00"]时,显示 “状态:已关灯”;
当 “coapRecvData” 等于["02","32","00"]时,显示 “状态:亮度 50%”;
✅ 最终效果:智能灯一发送反馈,状态框就自动更新,不用手动刷新,操作结果一目了然。
新手避坑提醒
- 连接前确认设备状态:智能灯必须通电、连入同一局域网,否则会连接失败;
- 端口别填错:CoAP 设备默认端口是 5683,大部分物联网设备都会沿用,不确定就看设备说明书;
- 指令格式要精准:每个操作对应的 16 进制码是固定的(比如开灯01,00),必须按说明书填,填错设备不会执行操作;
- 接收数据要等反馈:发送指令后,智能灯可能需要 1-2 秒发送反馈,不用着急,状态框会自动更新;
- 断开后需重新连接:断开连接后,想再控制设备,必须重新执行「连接」操作,控制按钮才会恢复可用。
NFC
NFC 就是 “近距离无线传数据” 的技术,简单说就是两个设备贴一贴、靠一靠就能传数据,比如手机刷门禁、刷公交、手机碰手机传文件,用的都是 NFC。
它的核心特点如下
距离超近:必须靠在 20 厘米内(实际用的时候贴紧就行),安全又防干扰;
速度快:传输速度有三种(106/212/424 Kbit / 秒),日常传文字、URL、门禁信息完全够用;
功能多:能当 “读卡器” 读卡片数据,能当 “写卡器” 往空白 NFC 卡里写信息,还能实现手机碰手机传数据。
核心要点
- 用之前先查权限:先确认手机支持 NFC,不然没法用;
- 写入数据类型多:能写 URL、文本、电话、WiFi、名片这些常用信息,直接填对应内容就行;
- 读取卡片分类型:不同场景的卡对应不同类型(比如门禁卡是 NfcA,支付卡是 NfcB),选对类型才能读对数据。
操作流程
- 从画布中选中按钮进入流程图后。
- 点击
+添加动作,在右侧的动作列表页面选择硬件动作->NFC。 - 选择操作类型
| 操作类型 | 说明 |
|---|---|
| 校验 NFC 权限 | 先 “查手机能不能用 NFC”,APP 自动检测当前手机支不支持 NFC 功能,支持才能往下用,不支持就会明确提示,避免白忙活 |
| 写入数据 | 往空白 NFC 卡里 “存东西”,能存 6 种常用内容,填好信息、手机贴紧卡片就行 1. URL:存个网址(比如 https://aiflutter.com/),别人碰卡直接打开网页;2. 文本:存句话(比如 “欢迎来我家”),碰卡就显示; 3. 电话:存手机号(比如 13800138000),碰卡直接弹出拨号;4. 应用:存 APP 包名(比如微信 com.tencent.mm),碰卡直接打开对应 APP;5. 名片:存姓名、电话、公司等,碰卡自动添加到手机通讯录; 6. WIFI:存 WiFi 名称、密码、安全类型(比如 WPA2),别人碰卡自动连 WiFi |
| 读取数据 | 读已有 NFC 卡里的 “存的东西”,要选对卡片类型才能读对,四种类型对应场景很明确: Ndef:普通 NFC 标签、NFC 名片通用,不确定类型先选这个; NfcA:读门禁卡、停车场卡(M1 卡),刷门禁时选; NfcB:读银行支付卡、身份 IC 卡,查支付卡公开信息时选; NfcV:读公交卡、电子票务卡(15693 卡),查公交卡余额、电子票时选 |
| 关闭 | 用完 NFC 后 “关功能、省电量”—— 释放手机的 NFC 资源,关闭后手机不再响应卡片触碰,想再用只需重新校验权限、开启功能 |
示例
做一个 “NFC 多功能卡片管理 APP”
核心需求
- 先检测手机是否支持 NFC,不支持就给提示;
- 支持往空白 NFC 卡里写数据:比如写门禁卡信息、WiFi 账号密码、个人名片;
- 支持读已有 NFC 卡数据:比如读门禁卡、公交卡(仅支持读取公开数据)、NFC 名片里的信息;
前置准备
硬件:支持 NFC 功能的手机、空白 NFC 卡(用来写数据)、已有 NFC 卡(比如门禁卡、NFC 名片,用来读数据);
页面准备:在平台画布拖组件(分 “读写” 两大模块):
基础功能:「检测 NFC 权限」按钮、「关闭 NFC」按钮、「状态提示框」(显示 “支持 NFC”“已写入成功” 等);
写入模块:「写入类型选择器」(URL / 文本 / 电话 / WiFi / 名片 / 应用)、对应信息输入框(比如写 WiFi 要填名称、密码)、「开始写入」按钮;
读取模块:「卡片类型选择器」(Ndef/NfcA/NfcB/NfcV)、「开始读取」按钮、「数据显示框」(显示读到的内容)。
步骤1:检测手机是否支持 NFC(必做第一步)
需求:点「检测 NFC 权限」按钮,APP 自动判断手机是否支持 NFC,支持就进入后续功能,不支持就提示;
实操步骤(在「检测 NFC 权限」按钮的流程图里配置):
点流程图+号→选「硬件动作」→「NFC」;
操作类型选「校验 NFC 权限」→确定;
加 “条件判断”:
支持 NFC:「状态提示框」显示 “手机支持 NFC,可正常使用”,「写入 / 读取」模块的按钮解锁(从灰色变可点击);
不支持 NFC:弹出提示 “当前手机不支持 NFC 功能,无法使用”,「写入 / 读取」模块保持锁定;
✅ 最终效果:点按钮后,1 秒内出结果,新手能快速知道自己的手机能不能用,不用瞎折腾。
步骤2:往空白 NFC 卡里写数据(比如写 WiFi 信息、名片)
需求:选写入类型、填对应信息,把手机贴紧空白 NFC 卡,点「开始写入」,数据就能存进卡片;
实操步骤(以 “写 WiFi 信息” 为例,其他类型流程一致):
页面操作:在「写入类型选择器」里选「WiFi」,然后在输入框填:
WiFi 名称:比如 “我的家 WiFi”;
WiFi 密码:比如 “12345678”;
安全类型:比如 “WPA2”(按实际 WiFi 类型选);
流程图配置(点「开始写入」按钮→进入流程图):
先加 “判断动作”:如果未检测 NFC 权限,弹出提示 “请先检测 NFC 权限”;
权限正常则继续:点+号→「硬件动作」→「NFC」;
操作类型选「写入数据」;
右侧配置栏填:
写入类型:选「WiFi」;
绑定输入框变量:WiFi 名称、密码、安全类型(自动获取页面填写的内容);
✅ 最终效果:按提示把手机贴紧空白 NFC 卡,几秒后提示 “WiFi 信息写入成功”,之后别人用支持 NFC 的手机碰这张卡,就能自动连接 WiFi(不用手动输密码)。
步骤 3:读已有 NFC 卡的数据(比如读门禁卡、NFC 名片)
需求:选卡片类型、把手机贴紧要读的 NFC 卡,点「开始读取」,APP 自动显示卡里的信息;
实操步骤(以 “读门禁卡(NfcA 类型)” 为例):
- 页面操作:在「卡片类型选择器」里选「NfcA」(门禁卡一般是这个类型,不确定就看卡片说明书);
- 流程图配置(点「开始读取」按钮→进入流程图):
- 先加 “判断动作”:未检测 NFC 权限则提示 “请先检测 NFC 权限”;
- 继续添加动作:点+号→「硬件动作」→「NFC」;
- 操作类型选「读取数据」;
- 右侧配置栏填:卡片类型选「NfcA」;
- 绑定数据显示:添加关联变量 “nfcReadData”,把读到的数据绑定到「数据显示框」;
✅ 最终效果:手机贴紧门禁卡后,「数据显示框」显示卡里的公开数据(比如卡片 ID、存储内容),如果是 NFC 名片,会直接显示姓名、电话等信息,能一键保存到手机通讯录。
新手避坑提醒
- 手机必须贴紧卡片:NFC 传输距离超近,一定要把手机的 NFC 感应区(一般在背部中间)贴紧卡片,不然读不到、写不进;
- 写入前确认卡片空白:如果 NFC 卡已经写过数据,重新写入会覆盖原有内容,重要卡片先备份;
- 卡片类型别选错:读卡片时如果选不对类型,会提示 “读取失败”,不确定就先试「Ndef」类型,再按场景选对应类型;
- 注意卡片权限:部分加密卡(比如银行信用卡、加密门禁卡)只能读公开数据,没法写入或修改,这是正常情况;
- 写 WiFi 要填对安全类型:WiFi 安全类型(WPA2/WPA3 / 开放)要和实际一致,填错了别人碰卡也连不上 WiFi。

传感器
随着智能手机的普及,功能也越来越丰富,手机中的传感器也越来越多。
现在市场上的手机普遍包含以下传感器
光线传感器
原理:光敏三极管,接受外界光线时,会产生强弱不等的电流,从而感知环境光亮度。
用途:通常用于调节屏幕自动背光的亮度,白天提高屏幕亮度,夜晚降低屏幕亮度,使得屏幕看得更清楚,并且不刺眼。也可用于拍照时自动白平衡。还可以配合下面的距离传感器检测手机是否在口袋里防止误触。
距离传感器:
原理:红外LED灯发射红外线,被近距离物体反射后,红外探测器通过接收到红外线的强度,测定距离,一般有效距离在10cm内。距离传感器同时拥有发射和接受装置,一般体积较大。
用途:检测手机是否贴在耳朵上正在打电话,以便自动熄灭屏幕达到省电的目的。也可用于皮套、口袋模式下自动实现解锁与锁屏动作。
重力传感器:
原理:利用压电效应实现,传感器内部一块重物和压电片整合在一起,通过正交两个方向产生的电压大小,来计算出水平方向。
用途:手机横竖屏智能切换、拍照照片朝向、重力感应类游戏(如滚钢珠)。
加速度传感器
原理:与重力传感器相同,也是压电效应,通过三个维度确定加速度方向,但功耗更小,但精度低。
用途:计步、手机摆放位置朝向角度。
磁场传感器:
原理:各向异性磁致电阻材料,感受到微弱的磁场变化时会导致自身电阻产生变化,所以手机要旋转或晃动几下才能准确指示方向。
用途:指南针、地图导航方向、金属探测器APP。
陀螺仪:
原理:角动量守恒,一个正在高速旋转的物体(陀螺),它的旋转轴没有受到外力影响时,旋转轴的指向是不会有任何改变的。陀螺仪就是以这个原理作为依据,用它来保持一定的方向。三轴陀螺仪可以替代三个单轴陀螺仪,可同时测定6个方向的位置、移动轨迹及加速度。
用途:体感、摇一摇(晃动手机实现一些功能)、平移/转动/移动手机可在游戏中控制视角、VR虚拟现实、在GPS没有信号时(如隧道中)根据物体运动状态实现惯性导航。
GPS
原理:地球特定轨道上运行着24颗GPS卫星,每一颗卫星都在时刻不停地向全世界广播自己的当前的位置坐标及时间戳信息。手机GPS模块通过天线接收到这些信息。GPS模块中的芯片根据高速运动的卫星瞬间位置作为已知的起算数据,根据卫星发射坐标的时间戳与接收时的时间差计算出卫星与手机的距离,采用空间距离后方交会的方法,确定待测点的位置坐标。
用途:地图、导航、测速、测距。
气压传感器
原理:手机气压传感器是一种用于测量大气压强的微型电子元件,其核心原理是利用薄膜形变来感知压力变化。当外界大气压改变时,传感器内部一个极其灵敏的弹性薄膜会发生微小的形变(弯曲或位移)。
用途:海拔高度测量、天气趋势预测、户外运动辅助。
传感器模块仅支持光线、加速度、陀螺仪、重力、磁力传、气压感器数据的读取
操作流程如下
- 从画布中选中按钮进入流程图后。
- 点击
+添加动作,在右侧的动作列表页面选择硬件动作。 - 选择硬件类型
- 加速度(不含重力)
- 加速度(包含重力)
- 陀螺仪
- 磁力计
- 选择操作类型
- 开始数据监听,默认输出变量
event(包含x, y, z 三轴的数据),通过添加关联变量来动态渲染页面的数据。 - 停止数据监听,销毁监听事件。
- 开始数据监听,默认输出变量

相机
相机的操作类型有 打开前置相机、打开后置相机、打开闪光灯、关闭闪光灯。
需要配合扫描二维码小部件使用

通过相对定位布局添加按钮,并在流程图中配置相机操作
操作流程如下
- 从画布中选中按钮进入流程图后。
- 点击
+添加动作,在右侧的动作列表页面选择硬件动作->相机。 - 选择操作类型
- 打开前置相机,打开前置摄像头。
- 打开后置相机,打开后置摄像头。
- 打开闪光灯
- 关闭山关灯
