-
Obtain a Google Maps Android API Key from here.
-
Obtain a Pathsense SDK Client ID and API Key from here. Click “GET STARTED” and enter your email address.
-
In AndroidManifest.xml, add the following elements as children of the <application> element, by inserting them just before the closing </application> tag:
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_GOOGLE_MAPS_API_KEY" /> <meta-data android:name="com.pathsense.android.sdk.CLIENT_ID" android:value="YOUR_PATHSENSE_SDK_CLIENT_ID" /> <meta-data android:name="com.pathsense.android.sdk.API_KEY" android:value="YOUR_PATHSENSE_SDK_API_KEY" />
-
Substitute your API_KEY key for YOUR_GOOGLE_MAPS_API_KEY in the value attribute. This element sets the key com.google.android.maps.v2.API_KEY to the value of your Google Maps Android API key.
-
Substitute your CLIENT_ID key for YOUR_PATHSENSE_SDK_CLIENT_ID in the value attribute. This element sets the key com.pathsense.android.sdk.CLIENT_ID to the value of your Pathsense SDK Client ID.
-
Substitute your API_KEY key for YOUR_PATHSENSE_SDK_API_KEY in the value attribute. This element sets the key com.pathsense.android.sdk.API_KEY to the value of your Pathsense SDK API key.
-
-
Save AndroidManifest.xml.
-
Place pathsense-android-sdk-location-bundle-release-4.1.0.0.aar under /libs
-
In build.gradle, add the following:
- to the repositories element:
repositories { flatDir { dirs 'libs' } }
- to the dependencies element:
compile(name:'pathsense-android-sdk-location-bundle-release-4.1.0.0', ext:'aar')
- for improved performance on Android Oreo and above add Google Play Services Location 15.0.1 or higher *not required
compile "com.google.android.gms:play-services-location:15.0.1"
-
Save build.gradle.
-
Re-build application.
-
Create a Broadcast Receiver that will receive geofence events (i.e. ingress, egress).
- For convenience, you can extend PathsenseGeofenceEventReceiver
public class PathsenseGeofenceDemoGeofenceEventReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { PathsenseGeofenceEvent geofenceEvent = PathsenseGeofenceEvent.fromIntent(intent); if (geofenceEvent != null) { if (geofenceEvent.isIngress()) { // ingress // do something } else if (geofenceEvent.isEgress()) { // egress // do something } } } }
-
In AndroidManifest.xml, add the following element as a child of the <application> element, by inserting it just before the closing </application> tag:
<receiver android:name=".PathsenseGeofenceDemoGeofenceEventReceiver" />
-
In MapActivity (or any other context object), instantiate the PathsenseLocationProviderApi:
PathsenseLocationProviderApi api = PathsenseLocationProviderApi.getInstance(context);
-
Add a geofence to be monitored by calling addGeofence with an ID, latitude, longitude, radius, and the receiver created in step #1:
api.addGeofence("MYGEOFENCE", location.getLatitude(), location.getLongitude(), 100, PathsenseGeofenceDemoGeofenceEventReceiver.class);
- until removeGeofence is called, the receiver will be notified whenever a geofence event (i.e. ingress, egress) occurs.