diff --git a/src/main/java/org/altbeacon/beacon/service/scanner/CycledLeScannerForLollipop.java b/src/main/java/org/altbeacon/beacon/service/scanner/CycledLeScannerForLollipop.java index 844133d33..82251314d 100644 --- a/src/main/java/org/altbeacon/beacon/service/scanner/CycledLeScannerForLollipop.java +++ b/src/main/java/org/altbeacon/beacon/service/scanner/CycledLeScannerForLollipop.java @@ -155,6 +155,10 @@ public void run() { @Override protected void startScan() { + if (!isBluetoothOn()) { + LogManager.d(TAG, "Not starting scan because bluetooth is off"); + return; + } List filters = new ArrayList(); ScanSettings settings; @@ -205,6 +209,10 @@ public void run() { } private void postStopLeScan() { + if (!isBluetoothOn()){ + LogManager.d(TAG, "Not stopping scan because bluetooth is off"); + return; + } final BluetoothLeScanner scanner = getScanner(); if (scanner == null) { return; @@ -230,6 +238,20 @@ public void run() { }); } + private boolean isBluetoothOn() { + try { + BluetoothAdapter bluetoothAdapter = getBluetoothAdapter(); + if (bluetoothAdapter != null) { + return (bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON); + } + LogManager.w(TAG, "Cannot get bluetooth adapter"); + } + catch (SecurityException e) { + LogManager.w(TAG, "SecurityException checking if bluetooth is on"); + } + return false; + } + private BluetoothLeScanner getScanner() { try { if (mScanner == null) {