Ich möchte Beacons von 2 BLE-Geräten empfangen. Ich kenne ihre Bluetooth-Adressen.Warum bekomme ich nur einen Beacon, wenn mehrere BLE-Filter verwendet werden?
private List<ScanFilter> filters = new ArrayList<ScanFilter>(); // Global in actual code
ScanFilter filter1 = new ScanFilter.Builder()
.setDeviceAddress(bluetoothAddress1).build();
filters.add(filter1);
ScanFilter filter1 = new ScanFilter.Builder()
.setDeviceAddress(bluetoothAddress1).build();
filters.add(filter2);
und nennen Sie es mit
mLEScanner.startScan(filters, settings, mScanCallback);
(Einstellungen und Rückruf wurde definiert an anderer Stelle und korrekt funktionieren): Ich habe eine Filterliste wie so erstellt.
Wenn ich die Filterliste drucke, kann ich meine beiden Filter sehen, also weiß ich, dass sie da sind. Wenn ich einen der Filter auskommentiere, werde ich nur Pakete von dem anderen Beacon korrekt empfangen (das ist egal, welchen Filter ich auskommentiere). Wenn ich jedoch beide Filter unkommentiert lasse, dann empfange ich immer nur Pakete vom zweiten Gerät.
Warum gibt mir das Scannen mit Filtern immer nur Pakete von einem Gerät, nicht von mehreren?