diff --git a/src/main/java/org/altbeacon/beacon/BeaconManager.java b/src/main/java/org/altbeacon/beacon/BeaconManager.java
index 4cd455bdf..c6e8044e9 100644
--- a/src/main/java/org/altbeacon/beacon/BeaconManager.java
+++ b/src/main/java/org/altbeacon/beacon/BeaconManager.java
@@ -407,6 +407,7 @@ public boolean checkAvailability() throws BleNotAvailableException {
* @param consumer the Activity
or Service
that will receive the callback when the service is ready.
*/
public void bind(@NonNull BeaconConsumer consumer) {
+ /*
if (!isBleAvailable()) {
LogManager.w(TAG, "Method invocation will be ignored.");
return;
@@ -415,6 +416,7 @@ public void bind(@NonNull BeaconConsumer consumer) {
LogManager.w(TAG, "This device does not support bluetooth LE. Will not start beacon scanning.");
return;
}
+ */
synchronized (consumers) {
ConsumerInfo newConsumerInfo = new ConsumerInfo();
ConsumerInfo alreadyBoundConsumerInfo = consumers.putIfAbsent(consumer, newConsumerInfo);
@@ -430,7 +432,13 @@ public void bind(@NonNull BeaconConsumer consumer) {
else {
LogManager.d(TAG, "Binding to service");
Intent intent = new Intent(consumer.getApplicationContext(), BeaconService.class);
- consumer.bindService(intent, newConsumerInfo.beaconServiceConnection, Context.BIND_AUTO_CREATE);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O &&
+ this.getForegroundServiceNotification() != null) {
+ mContext.startForegroundService(intent);
+ }
+ else {
+ consumer.bindService(intent, newConsumerInfo.beaconServiceConnection, Context.BIND_AUTO_CREATE);
+ }
}
LogManager.d(TAG, "consumer count is now: %s", consumers.size());
}