code: @SuppressLint("MissingPermission")
    @RequiresPermission(anyOf = {
        ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION
    })
    public Observable<Beacon> observe(ScanStrategy scanStrategy) {
      if (!isBleSupported()) {
        return Observable.empty();
      }
  
      checkNotNull(scanStrategy, MSG_SCAN_STRATEGY_CANNOT_BE_NULL);
      return scanStrategy.observe();
    }
docs: Creates an observable stream of BLE beacons, which can be subscribed with RxJava.
  This method can scan beacons with provided scan strategy, which can be one of the existing
  strategies like {@link LollipopScanStrategy} or {@link PreLollipopScanStrategy} or any
  custom scan strategy implementing {@link ScanStrategy} interface
  
  @param scanStrategy BLE scan strategy
  @return Observable stream of beacons