Lange小蓝子 2024-08-16 16:17 采纳率: 42.9%
浏览 24
已结题

uniapp的低功耗蓝牙项目打包成安卓app与微信小程序的差异

前段时间与一个朋友合伙做了一个由 移动端应用 控制 低功耗蓝牙设备 的项目,我负责做的是应用,由uniapp框架开发。
首先,项目发布到微信小程序,搜索到周围的蓝牙设备的对象属性是这样的:

img

然后打包成安卓app后使用是这样的:

img

可以发现app端的少了connectable和serviceData两个属性
然而app端和微信小程序端都是可以正常向设备写入数据的
可以肯定的是app端的所有蓝牙设备信息都缺少connectable属性,导致功能不能通过该属性判断是否可以连接该设备
最后看到uniapp的官方蓝牙文档关于设备对象结构的解释是这样的:
官方文档:https://zh.uniapp.dcloud.io/api/system/bluetooth.html

img

可以看到文档的设备对象结构比app端实际应用多了serviceData属性,却又比微信小程序端的少了connectable属性
我的问题是:这种差异是不是依赖包不一致导致的还是什么原因?

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-16 16:18
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这种差异可能是由于不同平台(微信小程序和安卓app)的蓝牙API实现不同导致的。微信小程序和安卓app的底层系统和蓝牙协议栈可能有所不同,因此它们在处理蓝牙设备信息时可能会有所差异。这并不一定是由于依赖包不一致导致的,而是因为不同平台的蓝牙API设计和实现存在差异。

    在这种情况下,你可以尝试根据不同平台的特性来调整你的代码逻辑。例如,对于安卓app端,你可以忽略connectable属性,因为实际使用中并不影响向设备写入数据的功能。而对于微信小程序端,你可以利用connectable属性来判断设备是否可连接。这样,你可以在不同平台上实现相同的功能,同时适应各自的特性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月28日
  • 已采纳回答 8月20日
  • 创建了问题 8月16日