蓝牙单点技术实现路径介绍

本文主要介绍蓝牙设备与手机一对一相连的蓝牙单点技术。
摘要由CSDN通过智能技术生成

本文主要介绍蓝牙设备与手机一对一相连的 蓝牙单点 技术。

准备工作

  • 系统要求:蓝牙使用需要安卓 4.3 以及以上版本,智能生活 App SDK 从安卓 4.4 开始支持。
  • Manifest 权限
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    
  • 蓝牙权限检测:每次扫描和连接前,都要进行检测,否则 App 无法正常使用蓝牙。
    • App 在使用蓝牙连接或者扫描操作前,需要检查 App 定位权限是否被允许。
    • 检查蓝牙状态是否为开启。

说明:该部分检查逻辑,智能生活 SDK 未提供 API,您可自行检测。

扫描设备

开始扫描

待配网的蓝牙设备会向周围发送蓝牙广播包,SDK 会根据协议对广播包进行解析发现周围的涂鸦蓝牙单点设备和双模设备等。

⚠️注意:蓝牙设备扫描前需要进行权限检测,只有具备权限才能正常扫描

  • 蓝牙是否打开。
  • 应用是否具有定位权限。

接口说明

void startLeScan(LeScanSetting setting, TyBleScanResponse response);

参数说明

参数 类型 说明
setting LeScanSetting 扫描的设置
response TyBleScanResponse 扫描结果的回调,不能为空

构建类说明

LeScanSetting.Builder 用于构建需要扫描设备的设置。

方法名 参数 说明 是否必需
setTimeout() long 设置超时时间
默认:40000;单位:毫秒
可选
addScanType() ScanType
  • SINGLE:点对点蓝牙设备
  • MESH:涂鸦自研协议的 Mesh 设备
  • SIG_MESH:标准蓝牙 Mesh 设备
  • SINGLE_QR:扫码配网设备。
必需
setRepeatFilter() boolean 重复过滤,默认:true 可选

示例代码

LeScanSetting scanSetting = new LeScanSetting.Builder()
		.setTimeout(60000) // 扫描的超时时间:ms
		.addScanType(ScanType.SINGLE) // 若需要扫描蓝牙设备,则只需要添加 ScanType.SINGLE
		// .addScanType(ScanType.SIG_MESH) 可同时添加其他类型设备
		.build();

// 开始扫描
TuyaHomeSdk.getBleOperator().startLeScan(scanSetting, new TyBleScanResponse() {
	@Override
	public void onResult(ScanDeviceBean bean) {
		// 回调扫描的结果 TODO
	}
});

回调说明

ScanDeviceBean 说明

属性 类型 说明
id String 扫描 ID 通常由 UUID 组成,可以唯一区别设备
name String 扫描到的蓝牙名称,一般为空
providerName String 取值为 SingleBleProvider 则表示只开发单点设备,您无需关注该字段
data byte[] 原始数据
configType String
  • config_type_single:单点设备
  • config_type_wifi:双模设备
productId String 产品 ID
uuid String 设备 UUID,设备唯一码
mac String 设备 Mac,不可作为唯一码
isbind boolean 设备是否被绑定,能回调的均为未配网的设备
flag int
  • bit0:是否⽀支持 5G,表明双模设备是否支持 5G Wi-Fi
  • bit2:是否分享设备
  • bit3:是否⽀持蓝牙兜底配网设备
  • bit4:是否是扫码配网设备
address String 设备地址
deviceType int 设备类型,用于区分不同协议的设备,您无需关注该字段

deviceType 表示待配网设备类型,若带有 Wi-Fi 的双模设备见 双模配网,蓝牙设备见 蓝牙配网

deviceType 值 configType 设备类型
200 config_type_single 蓝牙设备
300 config_type_single 蓝牙设备
301 config_type_wifi Wi-Fi + 蓝牙双模设备
304 config_type_wifi Wi-Fi + 蓝牙双模设备(支持蓝牙兜底配网)
400 config_type_single 蓝牙设备
401 config_type_wifi Wi-Fi + 蓝牙双模设备
404 config_type_wifi Wi-Fi + 蓝牙双模设备(支持蓝牙兜底配网)

查询设备名称

扫描到目标设备以后,可以通过查询显示产品配置的名称和图标。

接口说明

void getActivatorDeviceInfo(String productId, String uuid, String mac, ITuyaDataCallback<ConfigProductInfoBean> callback);

参数说明

参数 类型 说明
productId String Sc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值