1.Bluez中hcitool工具使用
Bluez中hcitool工具使用
Bluez中hcitool工具已逐渐被Bluetoothctl取代,官方建议使用Bluetoothctl,因其功能更加强大且操作更便捷。hcitool直接与底层hci接口通信,源码显示其函数命名均以hci开头。android 图片放大 源码
hcitool中包含专门用于扫描低功耗设备的最新源码城命令lescan。对比源码,其函数hci_le_set_scan_parameters与Bluetooth技术规格要求一致。
扫描类型参数scantype定义为被动或主动扫描,主动扫描会发出扫描包,而被动扫描则不发出包。scantype参数决定扫描频率和窗口大小,通过调整scaninterval和scanwindow,网络黑页源码可实现低功耗扫描。
ownaddresstype参数设置为主动扫描包中地址的性质,默认设置为random,不选择public,云猎包源码可能为保护隐私,避免泄露自身MAC信息。
通过设置filter参数,可选择只上报白名单中的小程序源码银行设备,增强设备选择的针对性。
所有配置通过hci_send_req命令发送至底层,底层硬件接收到命令后接收包并生成HCI_LE_Advertising_Report事件。
使用print_advertising_devices函数获取并打印出扫描到的设备,该函数不断捕获HCI_LE_Advertising_Report事件,解析数据并打印出mac地址和外设名称,同时也可能包含RSSI数据。
部分名称显示为unknown,可能是因为外设广播包中缺少AD type为名称的字段。