Hello!
We are trying to use Nordic AndroidScannerCompatLibrary in our Android application to scan BLE devices and measure its RSSI level. BLE devices is mounted on ceiling with distance approximately 1m.
There is implementation of StartScan() action (its uses Xamarin Binding Library from Nordic AndroidScannerCompatLibrary .aar file):
var scanner = BluetoothLeScannerCompat.Scanner;
ScanSettings settings = new ScanSettings.Builder()
.SetLegacy(false)
.SetScanMode(ScanSettings.ScanModeLowLatency)
.SetMatchMode(ScanSettings.MatchModeAggressive)
.SetNumOfMatches(ScanSettings.MatchNumMaxAdvertisement) использую
.SetReportDelay(0)
.SetUseHardwareBatchingIfSupported(false)
.Build();
List< ScanFilter > filters = new List<ScanFilter>();
scanner.StartScan(filters, settings, _signalsScanCallback);
_signalsScanCallback store signals in package. After some period of time application send package to server storage.
And this is our stored RSSI level data set (from two iBeacon devices):

It seems like we have data from “one-device-per-period-of-time”.
Should we StartScan() for each device separately with list of ScanFilters, or it’s ok to use one instance of Scanner for all of it? We try to compare our results with same measures from “nRf connect”, and it’s differing. Can someone explain what are we doing wrong?