If you are using Gradle, please see the simplified integration guide. If you are not using Gradle, follow the steps below to integrate the Plot plugin into your app.
Step 1: Get The Library

Sign up and download the library from our dashboard.

Developer tools
Step 2: Implement Plot_v_.jar

Copy the file Plot_v_<version>.jar to the libs folder in your app project. When the project doesn’t have a folder named libs yet, then create the folder.

Step 3: Set minSdkVersion

Set the minSdkVersion version to at least 8. When using Gradle you can do that by changing build.gradle in the folder of your app.

defaultConfig {
    applicationId "com.myplotapplication"
    minSdkVersion 8
    targetSdkVersion 20
    versionCode 1
    versionName "1.0"
When you aren’t using Gradle you can set it using the uses-sdk tag inAndroidManifest.xml with the attributeandroid:minSdkVersion.
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;
&lt;uses-sdk android:minSdkVersion="8" android:targetSdkVersion="20" /&gt;
Step 4: Add Permissions

 Add the following permissions to the manifest element in AndroidManifest.xml:

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;uses-permission android:name="android.permission.INTERNET"/&gt;
&lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/&gt;
&lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/&gt;
&lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/&gt;
&lt;uses-permission android:name="android.permission.VIBRATE"/&gt;
Step 5: Add Boot Receiver

Add the following boot receiver to the applicationelement inAndroidManifest.xml

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;application&gt;&lt;receiver android:name="com.plotprojects.retail.android.PlotBootReceiver"&gt;
&lt;action android:name="android.intent.action.BOOT_COMPLETED"/&gt;
&lt;action android:name="android.intent.action.QUICKBOOT_POWERON" /&gt;
&lt;action android:name="com.htc.intent.action.QUICKBOOT_POWERON" /&gt;
&lt;action android:name="android.intent.action.MY_PACKAGE_REPLACED" /&gt;
&lt;action android:name="android.intent.action.ACTION_POWER_CONNECTED" /&gt;
&lt;action android:name="android.intent.action.AIRPLANE_MODE" /&gt;
&lt;category android:name="android.intent.category.HOME" /&gt;
Step 6: Add Service

Add the following service to the application element inAndroidManifest.xml

Please note the debug setting in the entry forPlotBackgroundService. Set the value to false to disable logging before releasing your app.

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;application&gt;&lt;service android:name="com.plotprojects.retail.android.PlotBackgroundService"&gt;
&lt;meta-data android:name="debug" android:value="true" /&gt;
Step 7: Add Provider

Add the following provider to the application element inAndroidManifest.xml

This enables you to retrieve the debug log when debug is enabled.

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;application&gt;&lt;!--Replace [[App Package]] with your package name.--&gt;
android:authorities="[[App Package]].plot.debuglogprovider"
android:exported="true" /&gt;
Step 8: Specify Receiver

Specify the following receiver for the OpenNotificationintent. This intent is sent when the user taps on the notification.

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;application&gt;&lt;receiver android:exported="false" android:name="com.plotprojects.retail.android.OpenUriReceiver"&gt;
&lt;!--Replace [[App Package]] with your package name.--&gt;
&lt;action android:name="[[App Package]].plot.OpenNotification" /&gt;
In the end yourAndroidManifest.xml will look something like this:
Step 9: Specify Landing Page Activity

Specify the following activity for opening a landing page. This activity is opened when a user opens a notification that is marked as an in-app landing page.

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"&gt;&lt;application&gt;&lt;activity
android:configChanges="orientation|screenSize" /&gt;
Step 10: Configuration File

Plot uses a configuration file which you have to define asplotconfig.json in yourassets folder. An example of such a config file can be found on our dashboard, as well as the public token you will have to use.

    "publicToken": "REPLACE_ME",
    "enableOnFirstRun": true
Step 11: Almost Done!

Call Plot.init(context) to initialize the library from your main Activity. When calling init from an activity, you can use the this keyword as the first parameter.

public class MyActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
Step 12: Proguard

Add the following snippet to your Proguard configuration. The default filename for this is the proguard.cfg for Ant builds andproguard-rules.pro for Gradle based builds.

-dontwarn org.altbeacon.**

An example configuration file and your public token can be found on the Download page on our dashboard.You are now ready to receive your first notification. Need more help during testing, look at this guide.

For more details, look at the extensive documentation.