首页 > 解决方案 > bt_adapter_le_start_scan() 在 tizen 可穿戴本机应用程序中也扫描 BLE 设备以外的设备

问题描述

我正在开发 tizen 可穿戴原生应用程序,我只需要扫描特定的 BLE 设备。所以,我在 bt_adapter_le_start_scan() 的帮助下扫描 BLE 设备。但此方法也返回 BLE 和其他蓝牙设备。我不希望扫描 BLE 设备以外的其他设备,因为如果我附近有更多蓝牙设备,则扫描这些 BLE 设备需要花费大量时间。顾名思义,bt_adapter_le_start_scan() 应该只寻找 BLE 设备。我可以过滤掉这些 BLE 设备,但扫描特定的 BLE 设备需要花费大量时间。

那么,如何将 bt_adapter_le_start_scan() 限制为仅扫描 BLE 设备?或者有什么方法可以将 UUID(蓝牙设备标识符)发送到扫描功能,它只会以最快的方式扫描指定的设备?

标签: tizentizen-wearable-sdktizen-native-app

解决方案


Tizen API 提供scan_filter功能来过滤扫描。

bt_adapter_le_scan_filter_create (bt_scan_filter_h *scan_filter) :创建一个扫描过滤器以仅查找符合特定要求的 LE 广告。

可以根据各种属性设置扫描过滤器:设备地址、设备名称、服务 UUID、制造数据、类型等。设置扫描过滤器有不同的功能。文件:

Tizen Wearable 4.0 蓝牙 LE 适配器 API 参考

bt_adapter_le_scan_filter_set_type() 函数似乎相关。

但是,此功能从 Tizen 4.0开始,现在如果您使用 Tizen Wearable 3.0或更低版本,则可以根据以下属性获取扫描结果:设备名称、服务 UUID、制造数据、蓝牙 LE 数据包类型等。有不同get_scan_results 的函数。文件:

Tizen Wearable 3.0 蓝牙 LE 适配器 API 参考


推荐阅读