我有Laird BL6000 BLE设备,我已连接传感器并配置为每0.5秒发布一次数据。
现在我想每0.5秒阅读一次此广告数据。
我可以使用startScanning()
读取数据并在uiOnLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)
中访问数据,但此过程大约需要2-3秒。我需要更快地读取这些数据。
如果他们的广告时间最短为0.5秒,则必须有一种方法来读取此数据。
答案 0 :(得分:0)
您是否使用LeScanCallback
来显示广告包?
onLeScan
方法你应该几乎立即收到数据包。如果您不这样做,您的设备可能不会在您设置的时间内做广告。
尝试使用您收到的广告包中的scanRecord
打印日志:
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
Log.i("ON LE SCAN", "UUID: "+ byteArrayToHex(scanRecord));
}
};
您还可以找到HERE关于如何扫描BLE设备并连接它们的完整示例。
祝你好运!