如何在Android扫描时读取蓝牙LE广告数据

8

蓝牙LE设备可以向其他设备广播消息。该消息数据包可以包括长度、配置文件、RSSI(信号强度)等信息。

在Android扫描BLE设备时,如何读取这些蓝牙LE广播数据?


1
你可以这样理解...蓝牙设备包含一些广告数据,这些数据包含它的Mac地址、名称和头部部分...所以我需要读取这些原始数据。 - vky
1
你是在谈论蓝牙低功耗(SMART)广告数据包还是蓝牙BR/EDR paging/inquiry,例如扩展查询消息? - Simon Peverett
是的,我在谈论包含一些数据的BLE广告数据包。 - vky
1个回答

8

API Levels 21+

android.bluetooth.le.ScanCallback中,回调方法如下所示,其中有一个名为result的参数,它有一个名为scanRecord的字段,应该包含由BLE设备发送的广告数据。

void onScanResult (int callbackType, ScanResult result)

API Levels 18-20

BluetoothAdapter.LeScanCallback中,以下回调方法有一个名为scanRecord的参数,该参数应包含BLE设备发送的广告数据。

public abstract void onLeScan (BluetoothDevice device, int rssi, byte[] scanRecord)

scanRecord:远程设备所提供的广告记录内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接