android 蓝牙发送失败怎么办,【报Bug】蓝牙模块CC2640R2F 安卓发送数据包第二次发送不成功{"code":10007,"message":"property not support"}...

用户反馈在安卓环境下使用特定UUID发送第二个数据包时遇到错误10007,提示不支持属性。首个数据包发送成功,但后续尝试失败。iOS环境下未出现此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详细问题描述

IOS环境下测试写入数据可以正常发送回调数据,但是在安卓下发送第一个数据包成功,第二个包就提示10007.请管理员帮忙查看一下问题 谢谢!

我用的发送uuid是:0000FF01-0000-1000-8000-00805F9B34FB

10:25:13.370 发送的数据包 = 2,162,12,118,207,213,207,114,96,15,236,157,190,11,126,239,159,111,0,0 at js/bluetooth.js:412

10:25:13.390 get characteristics success: 5 at js/bluetooth.js:448

10:25:13.410 0: {"uuid":"00001001-0000-1000-8000-00805F9B34FB","properties":{"read":true,"write":false,"notify":false,"indicate":false}} at js/bluetooth.js:450

10:25:13.430 1: {"uuid":"0000FF02-0000-1000-8000-00805F9B34FB","properties":{"read":false,"write":false,"notify":true,"indicate":false}} at js/bluetooth.js:450

10:25:13.450 2: {"uuid":"0000FF01-0000-1000-8000-00805F9B34FB","properties":{"read":false,"write":true,"notify":false,"indicate":false}} at js/bluetooth.js:450

10:25:13.470 3: {"uuid":"00001004-0000-1000-8000-00805F9B34FB","properties":{"read":true,"write":false,"notify":false,"indicate":false}} at js/bluetooth.js:450

10:25:13.490 4: {"uuid":"00001005-0000-1000-8000-00805F9B34FB","properties":{"read":true,"write":true,"notify":false,"indicate":false}} at js/bluetooth.js:450

10:25:13.510 写入数据失败: {"code":10007,"message":"property not support"} at js/bluetooth.js:422

10:25:13.530 第2数据包发送失败! at js/bluetooth.js:435

10:25:13.550 读取特征值的二进制数据操作完成回调函数: 10007 at js/bluetooth.js:436

[内容]

重现步骤

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]

[windows版本号]

[mac版本号]

uni-app运行环境说明

[运行端是h5或app或某个小程序?]

[运行端版本号]

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]

[编译模式是老模板模式还是新的自定义组件模式?]

App运行环境说明

[Android版本号]

[iOS版本号]

[手机型号]

[模拟器型号]

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

联系方式

[QQ]

### 关于 `readBLECharacteristicValue` 方法读取失败的解决方案 在 UniApp 中使用 Bluetooth Low Energy (BLE) 功能时,如果遇到 `readBLECharacteristicValue` 方法返回错误码 10007 的情况,这通常意味着设备未能成功连接到指定的服务或特性。为了有效解决问题并确保稳定的数据传输,可以采取以下措施: #### 确认蓝牙权限设置 应用程序需请求必要的蓝牙权限才能正常工作。对于 Android 设备而言,在应用启动前应确认已获取位置服务访问权以及细粒度的位置信息授权[^2]。 #### 验证 BLE 连接状态 确保目标外设处于可发现模式,并且与移动终端建立了稳固可靠的链接后再尝试调用 API 函数操作特征值。可以通过监听事件来跟踪当前连接状况的变化,从而及时响应断开重连等情况的发生[^1]。 #### 正确初始化和服务查找过程 按照官方文档指导完成整个流程:先打开适配器 -> 开始扫描 -> 停止扫描 -> 创建连接 -> 获取所有服务 -> 发现特定 service 下面的 characteristic 。每一步骤之间适当延时等待回调通知,防止因过快执行而引发异常中断。 #### 错误处理机制优化 针对可能出现的各种情形设计合理的容错逻辑,比如当发生超时未收到预期回应或是其他类型的 I/O 故障时能够自动触发重新建立链路的动作;同时记录日志便于后续排查分析问题根源所在。 ```javascript // 示例代码片段展示如何实现上述建议中的部分要点 import plus from '@dcloudio/uni-app-plus'; async function initBluetooth() { try { await plus.bluetooth.openAdapter(); const devices = await discoverDevices(); // 自定义函数用于发起搜索 let device; while (!device && devices.length > 0) { device = await connectToDevice(devices.shift()); } if(!device){ throw new Error('Failed to find and connect a suitable device'); } const services = await getDeviceServices(device); const characteristics = await getServiceCharacteristics(services.find(service => /* your condition */)); return characteristics; } catch (error) { console.error(`Initialization failed: ${error.message}`); handleRecovery(error); // 定义恢复策略 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值