GeotriggerMonitor

A GeotriggerMonitor monitors a Geotrigger condition and, when it is met, results in a GeotriggerNotificationInfo. A Geotrigger defines a query that is evaluated against GIS data as it changes in real time. For example, "Notify me when my device location enters one of my target areas" or "Notify me when my device location is within 50 m of my destination".

A GeotriggerMonitor is created with a Geotrigger that it continually checks to determine whether the condition has been met.

Once a GeotriggerMonitor is created, you begin checking the condition by calling GeotriggerMonitor.start(). Once you are finished, call GeotriggerMonitor.stop(). When a Geotrigger evaluates to true, a GeotriggerMonitor.notifications is sent. You can subscribe to the notification info to receive details of where the Geotrigger was activated and the condition that was met.

A GeotriggerMonitor can continue monitoring its Geotrigger condition when a mobile application is in the background. To enable this in an iOS or Android application, the following is recommended:

  • Use a LocationGeotriggerFeed with a LocationDataSource based on the GPS of the device.

  • Add manifest entries and request user permissions to allow background location updates.

The GeotriggerMonitor uses processing time provided by device location updates to monitor the active geotrigger. For backgrounded applications, the timing of location updates (and therefore the timing of geotrigger notifications) is determined by the operating system. If a FenceGeotrigger uses FeatureFenceParameters that reference a ServiceFeatureTable, and the table is associated with a FeatureLayer that has a non-zero FeatureLayer.refreshInterval, the geotrigger monitor requests fence updates from the server on that interval even when the application is in the background.

Since

200.1.0

Constructors

Link copied to clipboard
constructor(geotrigger: Geotrigger)

Constructs a GeotriggerMonitor with a Geotrigger condition.

Properties

Link copied to clipboard

The Geotrigger that will be monitored.

Link copied to clipboard

Indicates that the GeotriggerMonitor condition has been meet.

Link copied to clipboard

The current monitoring status of the GeotriggerMonitor. A GeotriggerMonitor begins with a monitoring status of GeotriggerMonitorStatus.Stopped and changes to GeotriggerMonitorStatus.Started when you call GeotriggerMonitor.start(). When you call GeotriggerMonitor.stop(), the monitoring status changes to GeotriggerMonitorStatus.Stopped.

Link copied to clipboard
val warning: StateFlow<Throwable?>

An error that describes a problem encountered while starting or monitoring the Geotrigger. A warning can occur at various stages of monitoring a Geotrigger:

Functions

Link copied to clipboard
suspend fun start(): Result<Unit>

Starts evaluating the GeotriggerMonitor. When the GeotriggerMonitor is successfully performing checks, the GeotriggerMonitor.status will be GeotriggerMonitorStatus.Started.

Link copied to clipboard
fun stop()

Stops evaluating the GeotriggerMonitor. Stopping the GeotriggerMonitor prevents the condition from being evaluated and notifications from being sent. If you are using a LocationGeotriggerFeed created from a LocationDataSource, the data source must also be stopped to turn off GPS receivers etc.