Android-检测在ScanResult回调上使用的蓝牙ScanFilter

问题描述

我有一个BluetoothLeScanner,可以使用多个ScanFilter进行扫描

List<ScanFilter> scanFilters = new ArrayList<>();

ScanFilter.Builder builder1 = new ScanFilter.Builder();
ScanFilter filter1;
builder1.setServiceUuid("my_service_id_1");
filter1 = builder1.build();
scanFilters.add(filter1);

ScanFilter.Builder builder2 = new ScanFilter.Builder();
ScanFilter filter2;
builder2.setServiceUuid("my_service_id_2");
filter2 = builder2.build();
scanFilters.add(filter2);

bleScanner.startScan(scanFilters,myScannerSettings,myScannerCallback);

我想检测两个过滤器中的哪一个在回调中触发了检测

@Override
public void onScanResult(int callbackType,ScanResult result) {
    super.onScanResult(callbackType,result);

    // the scan result does not contains information about the filter that was used to detect this scan result
}

是否可以访问此信息?请注意,我还有其他过滤条件,这些条件取决于制造商的数据,而不仅仅是服务UUID。此外,在某些环境中在后台执行扫描时,result.getScanRecord().getServiceUuids()数组可能为空。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)