问题描述
我有一个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 (将#修改为@)