ESTMonitoringManager


@interface ESTMonitoringManager : NSObject

ESTMonitoringManager handles monitoring Location Beacons on top of Estimote Location packet.

In order to monitor multiple devices a separate instance of Monitoring Manager should be created for each monitored device.

Estimote Monitoring uses Core Bluetooth and Core Location frameworks underneath. To make it work when the app is in background, make sure following entries are present in Info.plist file:

  • bluetooth-central

  • NSBluetoothPeripheralUsageDescription

  • NSLocationAlwaysUsageDescription

  • Delegate object that monitoring callbacks will be sent to.

    Declaration

    Objective-C

    @property (readwrite, nonatomic)
        id<ESTMonitoringManagerDelegate> _Nullable delegate;

    Swift

    weak var delegate: ESTMonitoringManagerDelegate? { get set }
  • Starts reporting monitoring events for device broadcasting Estimote Location packet with given identifier. Fetches monitoring parameters from Estimote Cloud, uses them to provide best monitoring experience, calls monitoringManagerdidStart and starts reporting monitoring events.

    If the fetch failed, starts reporting monitoring events using default parameters.

    Requests Core Location’s Always Usage authorization.

    Forgets previously monitored identifier if called multiple times on the same Monitoring Manager object.

    Declaration

    Objective-C

    - (void)startMonitoringForIdentifier:(nonnull NSString *)identifier
                             inProximity:(ESTMonitoringProximity)proximity;

    Swift

    func startMonitoring(forIdentifier identifier: String, in proximity: ESTMonitoringProximity)

    Parameters

    identifier

    Estimote Location public id. Equal to device identifier in Estimote Cloud.

    proximity

    Crossing monitoring proximity boundary causes monitoring events to happen. This is the proximity to be monitored.

  • Start reporting monitoring events for device broadcasting Estimote Location packet with given identifier. Uses default monitoring parameters.

    Forgets previously monitored identifier if called multiple times on the same Monitoring Manager object.

    Declaration

    Objective-C

    - (void)startDefaultMonitoringForIdentifier:(nonnull NSString *)identifier;

    Swift

    func startDefaultMonitoring(forIdentifier identifier: String)

    Parameters

    identifier

    Estimote Location public id. Equal to device identifier in Estimote Cloud.

  • Stop reporting monitoring events.

    Declaration

    Objective-C

    - (void)stopMonitoring;

    Swift

    func stopMonitoring()
  • Increase monitoring responsiveness in background (experimental). Can cause increase in battery usage.

    Declaration

    Objective-C

    - (void)startTurboMode;

    Swift

    func startTurboMode()
  • Stop increasing responsiveness in background. Battery performance returns to normal.

    Declaration

    Objective-C

    - (void)stopTurboMode;

    Swift

    func stopTurboMode()