Dify测试用例编写难题,一文解决Agent工具适配痛点

Dify工作流实践—根据word需求文档编写测试用例到Excel中 文章介绍了用dify工作流实现从word需求文档到测试用例写入excel的详细落地过程 阅读详情

第一章:Agent 工具的 Dify 测试用例

在构建基于 Agent 的智能系统时,Dify 作为可视化编排平台,支持对各类工具进行集成与测试。为确保 Agent 调用工具的准确性与稳定性,编写有效的测试用例至关重要。测试过程不仅验证功能正确性,还需覆盖异常输入、边界条件及响应延迟等场景。

测试前准备

  • 确认 Dify 平台已部署并可访问
  • 注册待测试的 Agent 工具,如 HTTP 请求工具、数据库查询插件等
  • 准备好测试用例所需的输入参数和预期输出结果

编写测试用例示例

以调用天气查询 API 的工具为例,测试其在 Dify 中的响应行为:
{
  "tool": "get_weather",
  "input": {
    "location": "Beijing"
  },
  // 预期返回包含 temperature 和 condition 字段
  "expected_output": {
    "temperature": "number",
    "condition": "string"
  }
}
该测试用例在 Dify 的调试界面中执行时,系统将模拟输入并比对实际输出结构是否符合预期。若字段缺失或类型不符,则标记为失败。

测试结果验证方式

测试项验证内容判定标准
响应状态码HTTP 状态是否为 200等于 200 为通过
数据结构返回 JSON 是否包含必要字段字段齐全且类型正确
错误处理传入无效城市名时的反馈返回用户友好错误信息
graph TD A[开始测试] --> B{输入有效参数?} B -->|是| C[调用工具API] B -->|否| D[返回错误提示] C --> E[解析响应] E --> F[比对预期结果] F --> G[记录测试状态: 成功/失败]

第二章:Dify测试用例设计核心原理

2.1 理解Agent工具在Dify中的角色与交互机制

在Dify平台中,Agent工具是实现自动化任务调度与外部系统集成的核心组件。它充当用户工作流与第三方服务之间的桥梁,能够接收指令、执行逻辑并返回结构化响应。
Agent的典型交互流程
  • 接收来自Dify工作流的触发信号
  • 解析输入参数并执行预定义操作
  • 调用外部API或本地函数完成任务
  • 将结果以JSON格式回传至主流程
代码示例:自定义Agent处理逻辑
def agent_handler(input_data):
    # input_data: 包含上下文和参数的对象
    action = input_data.get("action")
    payload = input_data.get("payload")

    if action == "fetch_user":
        return {"status": "success", "data": db_query(payload)}
    
    return {"status": "fail", "message": "Unknown action"}
该函数模拟一个简单Agent的行为,根据输入动作决定执行路径。input_data由Dify运行时注入,包含当前上下文信息;返回值将被自动序列化并传递给后续节点。
通信协议与数据格式
字段类型说明
actionstring指定要执行的操作类型
payloadobject携带具体业务参数
contextobject运行时上下文环境

2.2 基于LLM响应特征的测试场景建模方法

在构建针对大语言模型(LLM)的测试体系时,需深入分析其响应特征,包括生成长度、语义一致性与响应延迟等维度。通过提取典型响应模式,可建立动态可扩展的测试场景模型。
响应特征维度分析
  • 语义连贯性:评估输出是否逻辑自洽
  • 格式规范性:检测结构化输出如JSON是否合规
  • 响应时延分布:统计不同输入长度下的P95延迟
测试用例生成示例

# 基于模板生成多样化输入
def generate_test_input(prompt_template, variations):
    for v in variations:
        yield prompt_template.format(**v)

# 示例变体
variations = [
    {"action": "查询", "target": "用户订单"},
    {"action": "删除", "target": "系统日志"}
]
该代码实现参数化测试输入生成,prompt_template定义基础指令结构,variations注入语义变化,从而模拟真实使用场景中的多样性请求。

2.3 测试用例输入输出边界的定义策略

在设计测试用例时,明确输入与输出的边界条件是保障系统稳定性的关键。合理的边界定义能有效暴露潜在缺陷,尤其是在处理极端值或临界状态时。
边界值分析法
常用策略包括等价类划分与边界值分析。对于输入域为 [1, 100] 的整数参数,应重点测试 0、1、2、99、100、101 等边界点。
输入范围边界测试点
[1, 100]0, 1, 2, 99, 100, 101
非空字符串空串、单字符、超长串
代码示例:输入校验逻辑
func validateAge(age int) bool {
    if age < 0 || age > 150 { // 边界判断
        return false
    }
    return true
}
上述函数对年龄进行合法性校验,设定合理上下限。0 和 150 为典型边界值,测试时需覆盖其内外两侧,确保逻辑正确性。

2.4 利用Dify工作流结构进行路径覆盖分析

在复杂应用中,确保工作流逻辑的完整测试至关重要。Dify 提供了可视化的工作流编排能力,支持条件分支、并行执行与异常处理,为路径覆盖分析提供了结构化基础。
路径建模与覆盖策略
通过解析 Dify 工作流的 JSON 结构,可将其转换为有向图模型,节点代表操作步骤,边表示控制流转移。目标是实现语句覆盖与分支覆盖。
{
  "nodes": [
    { "id": "start", "type": "input" },
    { "id": "decision", "type": "condition", "expression": "{{input.value > 10}}" },
    { "id": "action_a", "type": "action", "next": "end" }
  ],
  "edges": [
    { "from": "start", "to": "decision" },
    { "from": "decision", "true": "action_a", "false": "end" }
  ]
}
上述结构可用于生成测试用例:输入值大于10触发 action_a,否则跳过。通过遍历所有条件分支,确保每条执行路径至少被执行一次。
自动化分析流程
  • 解析工作流定义,提取条件表达式
  • 构建控制流图(CFG)
  • 识别所有可能路径组合
  • 生成最小测试集以达成高覆盖率

2.5 设计可复用、可验证的测试断言逻辑

在自动化测试中,断言是验证系统行为正确性的核心。为提升维护性与一致性,应将常用断言封装为可复用函数。
封装通用断言方法
func AssertStatusCode(t *testing.T, resp *http.Response, expected int) {
    if resp.StatusCode != expected {
        t.Errorf("期望状态码 %d,但得到 %d", expected, resp.StatusCode)
    }
}
该函数接收测试上下文、响应对象和预期状态码,统一处理错误输出,降低重复代码量。
断言策略分类管理
  • 状态校验:如HTTP状态码、响应头
  • 数据校验:JSON字段存在性、值类型与范围
  • 行为校验:调用次数、异步事件触发
通过组合这些策略,可构建高可信度、易调试的验证体系,提升测试稳定性。

第三章:Agent工具适配常见问题剖析

3.1 工具调用失败的根本原因分类与诊断

在工具调用过程中,失败通常可归为三类根本原因:配置错误、权限不足与网络异常。每类问题需采用不同的诊断策略。
常见失败类型
  • 配置错误:如API地址拼写错误或参数缺失
  • 权限不足:未授权访问资源或密钥失效
  • 网络异常:超时、DNS解析失败或防火墙拦截
诊断代码示例
curl -v -H "Authorization: Bearer $TOKEN" https://api.example.com/v1/status
该命令通过详细输出(-v)展示HTTP请求全过程。若返回401状态码,表明认证失败,应检查令牌有效性;若连接超时,则需排查网络连通性与DNS配置。
错误分类对照表
现象可能原因诊断方法
401 Unauthorized令牌过期重新获取Token
Connection Timeout网络阻断traceroute检测路径

3.2 参数映射不一致导致的语义偏差问题

在跨系统调用中,参数映射是确保数据正确传递的关键环节。当接口定义与实际实现之间存在字段命名、类型或结构差异时,极易引发语义偏差。
典型映射错误示例

{
  "userId": "12345",
  "userName": "Alice",
  "user_role": "admin"
}
上述 JSON 中,userId 与 user_role 分别采用驼峰和下划线命名,若未统一规范,会导致反序列化失败或字段丢失。
常见问题成因
  • 前后端命名约定不一致
  • 缺乏标准化的数据契约(如 OpenAPI Schema)
  • 中间件自动转换逻辑缺失或配置错误
解决方案建议
通过引入统一的 DTO 层并配合注解处理器,显式声明映射规则,可有效规避此类问题。例如在 Spring Boot 中使用 @JsonProperty 显式绑定字段名,确保解析一致性。

3.3 多轮对话中上下文丢失的应对方案

在多轮对话系统中,上下文丢失常导致语义断裂。为保障对话连贯性,需引入会话状态管理机制。
会话上下文持久化
通过唯一会话ID绑定用户与上下文数据,将历史交互存储于内存缓存(如Redis)中。每次请求时恢复上下文,避免信息重置。
基于滑动窗口的上下文截取
为防止上下文过长,采用滑动窗口策略保留最近N轮对话:
# 保留最近3轮对话
context_window = chat_history[-3:]  
该方式在保证语义完整性的同时控制输入长度,提升模型推理效率。
上下文重要性评分机制
轮次内容摘要重要性得分
1用户询问订餐时间0.9
2系统确认地址0.8
3闲聊天气0.3
根据语义权重动态筛选关键上下文,有效缓解信息稀释问题。

第四章:实战驱动的测试用例编写流程

4.1 搭建本地化测试环境并对接Agent调试接口

在开发分布式系统时,搭建可复现的本地化测试环境是确保Agent稳定性的关键步骤。首先需配置Docker容器以模拟生产环境,确保网络、存储与权限策略一致。
环境初始化脚本
docker run -d \
  --name agent-test \
  -p 8080:8080 \
  -v ./config:/app/config \
  --cap-add=NET_ADMIN \
  agent-image:latest
该命令启动一个具备网络监控能力的Agent容器,映射调试端口并挂载本地配置文件,便于实时调整参数。
调试接口对接流程
  • 启用Agent的调试模式:设置环境变量 DEBUG_MODE=true
  • 通过HTTP接口 http://localhost:8080/debug/metrics 获取运行时指标
  • 使用curl或Postman发送诊断请求,验证响应数据结构
关键调试端点对照表
端点方法功能
/debug/healthGET健康状态检查
/debug/logsPOST获取指定时间范围日志

4.2 编写首个端到端测试用例:从Prompt到Tool Call

在构建智能代理系统时,首个端到端测试的核心目标是验证用户输入的自然语言指令能否正确触发工具调用。这一流程始于解析 Prompt,终于执行具体的 Tool Call。
测试用例设计
  • 用户输入:“查询北京今天的天气”
  • 期望动作:调用 get_weather(location: str) 工具
  • 参数预期:location = "北京"
代码实现示例
def test_prompt_to_tool_call():
    agent = Agent()
    result = agent.run("查询北京今天的天气")
    assert result.tool == "get_weather"
    assert result.args["location"] == "北京"
该测试验证了语义解析模块能准确提取地理实体并映射至对应工具。参数通过命名实体识别(NER)和意图分类联合判定,确保结构化输出符合 OpenAPI 规范。

4.3 引入自动化测试框架实现批量验证

在持续集成流程中,引入自动化测试框架是保障代码质量的核心环节。通过集成如JUnit、PyTest或Jest等主流框架,可实现对API接口、业务逻辑和UI交互的批量验证。
测试框架集成示例
以PyTest为例,编写一个基础测试用例:

def test_api_response_status(client):
    response = client.get("/api/v1/users")
    assert response.status_code == 200  # 验证HTTP状态码
    assert len(response.json()) > 0     # 验证返回数据非空
该测试使用模拟客户端请求用户接口,验证服务响应的正确性。参数client由测试框架提供,用于模拟HTTP请求环境。
批量执行与结果汇总
  • 支持并行执行多个测试用例,显著提升验证效率
  • 生成标准化的测试报告(如XUnit格式),便于CI系统解析
  • 结合覆盖率工具(如coverage.py)评估测试完整性

4.4 通过日志追踪与反馈闭环优化测试质量

在复杂系统中,测试质量的持续提升依赖于可观测性与反馈机制的紧密结合。日志追踪作为核心手段,能够捕获测试执行过程中的关键行为路径。
结构化日志采集
通过统一日志格式,便于后续分析。例如,在Go测试中注入上下文信息:

log.WithFields(log.Fields{
    "test_case": "UserLogin",
    "status":    "failed",
    "trace_id":  uuid.New().String(),
}).Error("Authentication failed during integration test")
该日志结构包含用例名、状态和唯一追踪ID,支持跨服务关联异常。
构建反馈闭环
测试失败日志自动推送至缺陷管理系统,并触发告警。通过以下流程实现自动化响应:

测试执行 → 日志采集 → 异常检测 → 工单创建 → 开发介入 → 修复验证

结合ELK栈对历史日志聚类分析,识别高频失败模式,针对性优化测试用例覆盖度与稳定性。

第五章:总结与展望

技术演进的持续驱动
现代软件架构正快速向云原生与边缘计算融合。以 Kubernetes 为核心的调度平台已成标准,但服务网格(如 Istio)和 Serverless 框架(如 KNative)正在重塑微服务通信模式。某金融企业在其交易系统中引入 eBPF 技术,实现零侵入式流量观测,性能损耗控制在 3% 以内。
代码即基础设施的深化实践

// 使用 Terraform SDK 管理 AWS EKS 集群
resource "aws_eks_cluster" "primary" {
  name = "dev-cluster"
  role_arn = aws_iam_role.eks_role.arn

  vpc_config {
    subnet_ids = [aws_subnet.a.id, aws_subnet.b.id]
  }

  // 启用 CloudWatch 日志采集
  enabled_cluster_log_types = ["api", "audit"]
}
该配置已在生产环境部署超过 200 次,结合 CI/CD 流水线实现版本回滚自动化,平均恢复时间(MTTR)缩短至 90 秒内。
未来挑战与应对策略
  • 量子计算对现有加密体系的潜在冲击,需提前布局后量子密码(PQC)算法迁移路径
  • AI 驱动的运维(AIOps)在异常检测中的准确率已达 87%,但误报仍影响可信度
  • 多云成本优化工具缺乏统一标准,导致资源浪费率平均达 35%
技术方向成熟度企业采纳率
WebAssembly 在边缘函数的应用Beta18%
分布式追踪标准化(OpenTelemetry)GA63%

架构演进路线图

2024:统一可观测性平台落地

2025:AI 自动调参进入核心系统

2026:跨云服务发现机制标准化

Dify实战,获取禅道需求,编写测试用例到禅道 2、docker_compose.yaml里面的镜像改成国内的镜像了,数据库ports:3306:3306,端口映射,需要先看下电脑本地的3306端口有没有被占用,如果占用,需要改一下。2、大模型解析自然语言,转成sql(执行sql、调用接口),因为y禅道页面不是通过调用接口的形式获取数据,所以需要执行sql。4、修改好之后,就可以进入文件夹的字段,输入docker compose up -d,启动禅道服务,本地通过。功能:连接数据库,执行查询类的sql,返回查询后的结果,json格式大模型比较任意理解。 阅读详情

相关推荐

Dify中MCP Agent使用配置方法和实践

避坑指南:在dify中如遇到MCPFunctionCall 支持不好的模型,或者提示tool parameter instruction not found in tool config等错误,请及时调整模型,实践中一开始调用硅基deepv3失败,专用sonnet3.5则正常使用。这个插件的作用,就是给 Dify 机器人增加更多的“插座”,让它可以连接更多的“工具”,从而完成更多的工作。有哪些有价值的信息。• 通过此插件,Dify可以和使用MCP协议的软件进行交互,极大地提高了Dify的使用场景。

jockerzoo的博客 1万+

使用dify生成测试用例

七、在结束之前,我们可以添加一个http请求,开发一个接口,当然可以用ai进行开发,代码附上,开发好就可以运行,用postman测试一下,开发接口的提示词。结果的返回选择上一个大模型的返回,其实这个时候就可以看到测试用例了,但是是一个数组的形式,可以试运行一下。工作流和chatflow的区别就是能不能对话,如果需要对话就选择chatflow,不需要就选择工作流。选择需要的大模型,大模型设置里面的SYSTEM就是系统提示词,USER就是用户提示词,工作室--创建空白应用--创建工作流。

m0_75191567的博客 3008

Agent 开发平台:Dify && Coze

整个dify 和Coze使用下来,感觉操作体验还是Coze 相对来说更友好,感觉Agent 的生成还是非常便捷的,当然上面都是一些非常非常简单的实践例子, 真要落地到实践应用上面,还需要经过不断的部署,调试,模型优化,成本预算等等,突然感觉其实也不必神话当前的AI 的作用,还有最近投资界对AI 机器人实践落地前景的不大看好,短期内成本高,效果不明显,AGI 的到来或许还需要一些时间~

fengruxue的专栏 1772

第十三章:Dify - 可视化 LLM 应用开发平台实战

Dify 是一个开源的大型语言模型(LLM)应用平台,旨在降低 LLM 应用开发的门槛,加速开发生命周期。它通过可视化编排、开箱即用的核心功能、简化的部署与管理以及模型与生态集成,使开发者、产品经理和运营人员都能快速构建、部署和管理 AI 应用。Dify 支持创建对话型应用和工作流应用,提供可视化 Prompt Studio、知识库管理、Agent 与工具、工作流编排等功能。通过动手实验,用户可以快速构建 RAG 聊天机器人和带条件判断的工具调用工作流,体验平台化工具带来的便捷与效率。

YPeng_Gao的博客 2396

dify MCP工具调用

前面几篇文章,介绍了Cherry Studio客户端调用MCP,接下来介绍dify如何调用MCP。

shykevin的博客 1230

Dify搭建AI测试用例生成器

1、获取产品需求文档2、解读、分析、挖掘需求点,提炼为测试点3、依据测试点,生成详细的测试用例4、输出测试用例1、打开 Dify 控制台,依次点击【工作室】-【ChatFlow】-【创建空白应用】。

十二测试录 1371

一文彻底搞懂大模型 - Dify(Agent + RAG)

该平台结合了后端即服务(Backend as Service, BaaS)和LLMOps的理念,为开发者提供了。

m0_59163425的博客 27万+

基于Dify的Agent全流程测试

跟一文读懂Langchain:ChatGLM3和ChatGPT的Agent调用分析中的测试基准一样,针对请问下面这个字符串的长度的三次幂是几:XXX这个问题,看看能否正确调用获取字符串长度和计算三次幂这两个工具。选择创建空白定义,类型为Agent点击Agent设置,可以看到默认模式就是ReActDify里面的工具都是基于外部API定义的,因此需要将两个函数封装成API的形式title="Agent测试API",return appsummary="获取字符串长度",

羊城迷鹿的博客 3209

一文了解dify如何支持多agent架构

摘要:我们经常会用dify 来实现明确场景的agent或者工作流,但是一些复杂场景的时候我们就需要使用多agent架构,本文介绍了agent和workflow的区别以及在dify中如何实现多agent架构。

m0_59235245的博客 3689

LibTV本地部署:AI漫剧创作完整解决方案与实战指南

如果你正在关注AI漫剧创作这个赛道,可能会发现一个有趣的现象:市面上的AI视频工具要么功能单一,要么云端服务昂贵且存在内容审核风险。而今天要介绍的LibTV本地部署方案,或许能为你打开一扇新的大门。 这个方案的核心是Seedance2.0与豆包AI的本地化集成,它真正解决的是创作者对内容自主权、成本控制和创作效率的三重需求。与红果、抖音等平台提供的标准化AI工具相比,本地部署意味着你可以完全掌控生成过程,不受平台规则限制,更重要的是——所有数据都在本地,不存在内容泄露风险。 1. 这篇文章真正要解决的问题

weixin_28745309的博客 523

【零基础入门哈希签名架构,从Lamport到SPHINCS+】第二集 哈希签名树 Merkle Tree Authentication

在第一集中,我们一直忽略了一个问题。设想一下,假如有一个Hacker(黑客),在截获到Sender发送给Receiver的公钥之后,把这个公钥改成Hacker自己的公钥,然后再发给Receiver,那么Receiver就会误认为这是Sender的公钥。所以我们之前所说放方案,其安全性都需要建立在一个前提下:Receiver需要确认公钥确实是Sender发出的。

m0_50572808的博客 2453

工具调用顺序设计难题,一文搞懂Dify Agent智能决策流程

掌握Dify Agent 的工具调用顺序设计,轻松实现智能体高效决策。详解其在多工具协作场景下的调度逻辑与执行流程,结合条件判断与优先级机制,提升任务自动化准确率与响应速度。一文读懂底层原理,值得收藏。

AlgoFun的博客 1009

Python量化交易实战:从零搭建你的第一个多因子选股模型(附完整代码)

本文是一份详细的Python量化交易入门实战指南,手把手教你从零搭建第一个多因子选股模型。内容涵盖环境配置、数据获取、因子挖掘与有效性检验、多因子合成以及完整的策略回测与绩效评估,并附有可直接运行的完整代码,帮助初学者快速掌握量化交易的基本概念与实践流程。

resnet7explorer的博客 936

工具冲突频发?Dify Agent优先级排序,一招解决资源争用难题

解决工具冲突难题,掌握Dify Agent的工具优先级排序方法。适用于多任务并发场景,通过智能调度策略优化资源分配,提升执行效率与稳定性。一招化解资源争用问题,值得收藏。

FastSolve的博客 1011

Ubuntu下NVIDIA驱动安装全攻略:从报错到完美运行nvidia-smi的完整流程

本文提供了在Ubuntu系统中安装NVIDIA驱动的完整解决方案,重点解决因驱动版本冲突、内核模块未加载或Secure Boot安全启动导致的`nvidia-smi`报错问题。通过彻底清理旧驱动、处理Secure Boot、选择兼容版本并正确安装,最终确保驱动完美运行。

weixin_29196891的博客 364

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 903

3个实战技巧解决Dify工作流Agent与工具调用配置难题

在Dify工作流开发中,Agent与工具调用是实现智能自动化的核心能力,但许多中级开发者在配置过程中常遇到工具选择困难、参数传递错误、Agent策略配置不当等问题。本文将采用"挑战场景 → 诊断突破 → 解决方案 → 实战验证"的四步法,帮助您系统掌握Dify中Agent与工具调用的配置精髓,提升工作流智能化水平。 ## 场景一:多轮对话Agent配置的迷雾挑战 ### 挑战场景 当您需要构建

gitblog_01085的博客 377

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 110

收藏!一文掌握Dify Agent工具调用三大策略:Function Calling、ReAct与MCP

文章深入解析了Dify Agent节点的三种核心工具调用策略:Function Calling作为高效可靠的专业翻译官,提供结构化输出和高性能;ReAct作为逻辑侦探,通过"思考-行动-观察"循环处理复杂任务;MCP作为生态集成家,实现工具解耦与标准化。文章提供了选择指南:通用场景选Function Calling,复杂逻辑任务用ReAct,企业级系统则拥抱MCP生态,帮助开发者为AI应用选择最合适的"动力引擎"。

datian1234的博客 2413

ABAP Channels 实战:在 ABAP 7.40 中用 WebSocket 打造实时双向通信

本文详细介绍了SAP ABAP 7.40引入的ABAP Channels通信框架,包含AMC(ABAP Messaging Channels)和APC(ABAP Push Channels)两部分。AMC作为应用服务器内部的消息总线,支持发布/订阅模式,可实现跨会话实时通信;APC基于WebSocket协议,用于浏览器等客户端与ABAP服务器的双向实时交互。文章通过一个乒乓球游戏案例展示了ABAP Channels的实时协作能力,并详细解析了AMC的配置方法、消息发送与接收的代码实现,帮助开发者理解如何利用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 221

ERROR: Ignored the following yanked versions: 0.8.3, 0.10.19.dev18 的解决办法

关于这个问题,博主是在进行项目中的python依赖包安装的时候遇见的,遇到的异常:关于这个问题,是在。

Spring Boot-Common On With You 643

在Dify中使用本地MCP工具

MCP协议(模型上下文协议)是由Anthropic提出的AI集成开放标准,旨在**解决AI工具集成中的"M×N问题"**。简而言之,它就像AI领域的USB接口,为各种外部工具、数据源和系统提供标准化连接方案。

m0_59163425的博客 5111

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Dify与Spring AI版本兼容难题:如何避免集成失败的3个关键步骤
下一篇: Dify工作流版本回滚避坑指南:90%团队忽略的3个关键细节
ByteChat
博客等级 码龄1年 157粉丝 1991原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值