diff --git a/CHANGELOG.md b/CHANGELOG.md index b13cba2fe..808571877 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,13 @@ ### 2.14 / 2018-05-17 Enhancements: + + - Add warnings about disabling scheduled scan jobs on Android 8+ (#674, David G. Young) - Add warning about setting short scan periods on Android 8 (#677, David G. Young) - BeaconTransmitter advertisements may be configured as connectable (#683, Michael Harper) Bug Fixes: - - Fix crashes of BluetoothMedic caused by Bluetooth being turned off (#675, David g. Young) + - Fix crashes of BluetoothMedic caused by Bluetooth being turned off (#675, David G. Young) ### 2.13.1 / 2018-03-05 diff --git a/src/main/java/org/altbeacon/beacon/BeaconManager.java b/src/main/java/org/altbeacon/beacon/BeaconManager.java index b9fb8ab08..6336cf18b 100644 --- a/src/main/java/org/altbeacon/beacon/BeaconManager.java +++ b/src/main/java/org/altbeacon/beacon/BeaconManager.java @@ -553,6 +553,10 @@ public void setBackgroundMode(boolean backgroundMode) { * otherwise beacon scans may be run only once every 15 minutes in the background, and no low * power scans may be performed between scanning cycles. * + * Setting this value to false will disable ScanJobs when the app is run on Android 8+, which + * can prohibit delivery of callbacks when the app is in the background unless the scanning + * process is running in a foreground service. + * * This method may only be called if bind() has not yet been called, otherwise an * `IllegalStateException` is thown. * @@ -569,8 +573,13 @@ public void setEnableScheduledScanJobs(boolean enabled) { " availble prior to Android 5.0"); return; } + if (enabled && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + LogManager.w(TAG, "Disabling ScanJobs on Android 8+ may disable delivery of "+ + "beacon callbacks in the background unless a foreground service is active."); + } mScheduledScanJobsEnabled = enabled; } + public boolean getScheduledScanJobsEnabled() { return mScheduledScanJobsEnabled; }