То, как я это сделал, было реализовать объект scanCallback () и переопределить onScanResult () или onBatchScanResults () по мере необходимости.
private ScanCallback callback= new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
// handles scan result
}
@Override
public void onBatchScanResults(List<ScanResult> results) {
super.onBatchScanResults(results);
// handles batch scan results
for (ScanResult result : results) {
// you can iterate through each result like so
}
}
@Override
public void onScanFailed(int errorCode) {
super.onScanFailed(errorCode);
// handles error
}
};
Затем вы передаете callback
внутри stopScan()
и startScan()
bluetoothLeScanner.startScan(callback);
bluetoothLeScanner.stopScan(callback);
Также рассмотрите возможность использования result.getDevice()
, чтобы вы могли получить конкретные данные устройства, которое вынужно вместо большого куска информации. Например, result.getDevice().getAddress()
, если вы хотите только адрес.