From f7bd8d2b27d0c982c617dbac99b6b89780e2667e Mon Sep 17 00:00:00 2001 From: Jakob Schweisshelm Date: Tue, 12 Nov 2024 15:11:10 +0100 Subject: [PATCH] Added support for Extended Advertising on Android --- .../btleplug/android/impl/Adapter.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/droidplug/java/src/main/java/com/nonpolynomial/btleplug/android/impl/Adapter.java b/src/droidplug/java/src/main/java/com/nonpolynomial/btleplug/android/impl/Adapter.java index e2a4332b..d03c8e21 100644 --- a/src/droidplug/java/src/main/java/com/nonpolynomial/btleplug/android/impl/Adapter.java +++ b/src/droidplug/java/src/main/java/com/nonpolynomial/btleplug/android/impl/Adapter.java @@ -8,6 +8,7 @@ import android.bluetooth.le.ScanFilter.Builder; import android.bluetooth.le.ScanResult; import android.bluetooth.le.ScanSettings; +import android.os.Build; import android.os.ParcelUuid; import java.util.ArrayList; @@ -35,9 +36,17 @@ public void startScan(ScanFilter filter) { filters.add(new Builder().setServiceUuid(ParcelUuid.fromString(uuid)).build()); } } - ScanSettings settings = new ScanSettings.Builder() - .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) - .build(); + ScanSettings settings; + if (Build.VERSION.SDK_INT >= 26) { + settings = new ScanSettings.Builder() + .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) + .setLegacy(false) + .build(); + } else { + settings = new ScanSettings.Builder() + .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES) + .build(); + } BluetoothLeScanner scanner = bluetoothAdapter.getBluetoothLeScanner(); if (scanner == null) { throw new RuntimeException("No bluetooth scanner available for adapter");