# SmartGeofenceApi

## SmartGeofenceApi API

### `getDetectionMode()`

> ```java
> DetectionMode getDetectionMode();
> ```
>
> Returns the geofence entry/exit detection mode. See [DetectionMode](https://docs.sentiance.com/important-topics/sdk/api-reference/android/smart-geofences/detectionmode).
>
> Note: calling this method on an uninitialized SDK will throw an SdkException.

### `refreshGeofences()`

> ```java
> PendingOperation<SmartGeofencesRefreshResult, SmartGeofencesRefreshError> refreshGeofences()
> ```
>
> Refreshes the list of geofences that the SDK monitors.
>
> The SDK obtains the list of geofences that it monitors from the Sentiance Cloud Platform, and refreshes it several times a day. Use this method to initiate a refresh, for instance, when you have created a new geofence directly on the Sentiance platform, and want it to be immediately monitored by the SDK. Note that refresh requests are throttled to once every 30 seconds.
>
> Returns [SmartGeofencesRefreshResult](https://docs.sentiance.com/important-topics/sdk/api-reference/android/smart-geofences/smartgeofencesrefreshresult) upon success or [SmartGeofencesRefreshError](https://docs.sentiance.com/important-topics/sdk/api-reference/android/smart-geofences/smartgeofencesrefresherror) upon failure via PendingOperation.

### `setSmartGeofenceEventListener()`

> ```java
> void setSmartGeofenceEventListener(@Nullable SmartGeofenceEventListener listener)
> ```
>
> Sets a listener that will be invoked when a geofence entry or exit event is detected.
>
> Note: calling this method on an uninitialized SDK will throw an SdkException.

<table><thead><tr><th width="248">Parameters</th><th></th></tr></thead><tbody><tr><td>listener</td><td>A <a href="smartgeofenceeventlistener">SmartGeofenceEventListener</a> to receive details about the geofence event. Set <code>null</code> to remove a previously set listener.</td></tr></tbody></table>
