Skip to content

Latest commit

 

History

History
92 lines (68 loc) · 4.12 KB

File metadata and controls

92 lines (68 loc) · 4.12 KB

Setup for Pathsense Geofence Demo

  1. Obtain a Google Maps Android API Key from here.

  2. Obtain a Pathsense SDK Client ID and API Key from here. Click “GET STARTED” and enter your email address.

  3. 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.

  4. Save AndroidManifest.xml.

  5. In build.gradle, add the following:

    • to the dependencies element:
    compile project(':pathsense-android-sdk')
  6. Save build.gradle.

  7. Re-build application.

Adding a Geofence

  1. Create a Broadcast Receiver that will receive geofence events (i.e. ingress, egress).

    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
          }
        }
      }
    }
  2. 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" />
  3. In MapActivity (or any other context object), instantiate the PathsenseLocationProviderApi:

    PathsenseLocationProviderApi api = PathsenseLocationProviderApi.getInstance(context);
  4. 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.