SDK Download

Download the latest version of the Android SDK below: 

Ref Version Description Uploaded Link
a-26092017 5.0.0

Added deeplink listener interface

Improved functionality for interactive notifications

Improved messageResponseListener callback

26/09/2017 Download


Release Notes

5.0.0 26/09/2017

  • DeeplinkListener Interface added
  • Added functionality for handling and reporting notification action clicks
  • Improved MessageResponseListener callback. Current parameters are:
    • messagePayload : The Message object containing all the message details
    • responsePayload : A HashMap outlining the current action
    • uiReference : A reference to the current context registered with PushConnector
  • PushMessage now Message
  • immediatePushProcessing has been deprecated, showForegroundNotification added.
  • Improved reporting capability added
    • reportMessageClicked function added
    • reportMessageDismissed function added
  •  Minor bug fix

4.3.1 24/07/2017

  • setExternalId(String) function added
  • Added hitEvent(String, HashMap<String, String>) function to allow key value params to be sent with event hits
  • Extra debug logging added
  • Minor bug fix


4.2.0 10/07/2017

  • PushMessage to JSON function added
  • Inbox badge update when app comes into the foreground


4.1.1 28/06/2017

  • Improved notification handling
  • Minor bug fix


4.1.0 22/06/2017 

  • 'hitEvent' method simplified
  • Handling added to prevent malformed beacon UUID from being added to list
  • Improvements made to beacon functionality
  • Improved InApp messages rotation
  • Added "setSubscription" function, which allows for the push messages to be toggled on or off programatically
  • Added method addToExclusionList, which allows for certain Activities to not instantiate PushConnector
  • Minor bug fixes added


4.0.2 29/03/2017

  • Minor regression bug fix to prevent edge-case NullPointerException


4.0.1 21/03/2017

  • Inbox badge updates when a push is received
  • Minor regression bug fix based on inbox close


4.0.0 22/02/2017

  • Improved integration mechanisms
    • SDK can be imported from Maven repository
    • SDK has own manifest which contains all necessary Xtremepush classes and permissions, so no additions are needed in app manifest
  • Features added to allow for interactive notifications
  • PushListener interface has been deprecated, replaced with MessageResponseListener interface
    • PushReceived callback in PushListener has been replaced by messageClicked in MessageResponseListener
    • New interface handles in-app, inbox, and push message callbacks.


3.5.2 14/12/2016

  • Additional support for multi-window mode (Android N)
  • Minor update to accommodate mipmaps
  • Download available here


3.5.1 25/08/2016

  • Minor update to location functionality
  • Improved handling of runtime permission requests


3.5.0 22/06/2016

  • Feature added for including an inbox in you app to persist notifications. Please go to the Android App Inbox page for more information.
  • Feature added for setting a background image for notifications on Android Wear devices. This can be used by calling the .setWearNotificationBackground() function, passing in the name of the image to use from the res/drawable folder:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
  • Feature added for setting a single Activity to use as the entry point for all notification clicks. This can be used by calling the .setNotificationHandlerActivity() function, passing in the Activity class:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)


3.4.0 03/03/2016

  • Feature added to allow rich push message notifications, with LargeIcon and/or BigPicture 
  • Feature added to allow Heads-up notifications
  • Feature added to allow low-powered geo location monitoring. This can be used by calling the .setLowPowerGeo(true) function when initialising the mPushConnector object:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)


3.3.0 17/02/2016

  • Feature added to allow customisation and localisation of the Android location permission requests in Android 6.
    • By default, the system's permission request dialog will be localised to the device's language settings
    • There is a second dialog that is shown if the user denies the first dialog and then reopens the app. This provides more context around the permission request
    • The title and message for the second dialog can be customised or localised by passing in strings to the .setRequestPermissions() function as shown here:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
.setRequestPermissions(true, "title", "message")
  • Feature added so that the prompt, that shows when location services are not enabled on the device, can be disabled: 
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
  • Fixed issue where XP service was not getting initialised on some devices on boot. This requires a minor change in the integration in AndroidManifest.xml to add in the 5 lines in blue (the second intent-filter element):
<receiver android:name="ie.imobile.extremepush.receivers.GCMReceiver" android:permission="" >
<action android:name="" />
<action android:name="" />
<action android:name="ie.imobile.extremepush.BEACON_SERVICE_STARTED" />
<!-- MODIFICATION NEEDED - Replace YOUR_PACKAGE_NAME with your package name -->
<category android:name="YOUR_PACKAGE_NAME" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />

3.2.0 29/01/2016

  • Feature added to completely separate Push, In-App, Geo and Beacon functionality so that each one can be enabled with dependence on any of the others.
    • To provide the above feature, an additional service was added to the library, which changes the integration in AndroidManifest.xml. The following entry needs to be added into the Application element in AndroidManifest.xml
 <service android:name="ie.imobile.extremepush.location.GeoLocationService" />
    • In order to enable/disable each of the four options, the following methods can be used during the initialisation of the PushConnector object. Below shows the default settings of each option. Please note, that if the GCM_APP_NUMBER is omitted, i.e. new PushConnector.Builder(XPUSH_APP_KEY), then Push messaging will be disabled.
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
  • Update to the permission request added in SDK 3.1.1 so that it is enabled by default. This can be overridden using the following method when creating the PushConnector object: 
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)


3.1.3 06/01/2016

  • There are no changes to the integration procedure
  • Minor bug fix 


3.1.2 17/12/2015

  • Feature added to allow immediate processing of a push or location-based message when the app is open in the foreground. This can be selected by passing in a true value to the setImmediatePushProcessing() function when initialising the PushConnector object:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
  • Minor bug fix


3.1.1 09/12/2015

  • Feature added to allow runtime permission requests for location services in Android Marshmallow. This can be selected by passing in a true value to the setRequestPermissions() function when initialising the PushConnector object:
 mPushConnector = new PushConnector.Builder(XPUSH_APP_KEY, GCM_APP_NUMBER)
  • Updated version of dependency support v4
compile ''
  • Minor bug fixes


3.0 25/11/2015

  • Performance improvements to delivery of location based notifications. 
  • Support for New In-App module than can build messages from as little as one piece of creative and does not require HTML to be built. Users can still build messages from Custom HTML:
  • method showAlertDialog deprecated.There is still full support for displaying a push in a dialog when the App is open, see section on Custom in App Dialog for Push Message in Android notifications docs:
  • Updated version of dependency play-services to 8.3
compile ''
  • Updated version of dependency android-beacon-library to 2.6.1
compile 'org.altbeacon:android-beacon-library:2.6.1'
  • Updated version of dependency otto to 1.3.8
compile 'com.squareup:otto:1.3.8'
  • Updated version of dependency gson to 2.4
compile ''


2.2.2 22/9/2015

  • Update to add support for Android M. Android M removes support for the Apache HTTP client update required to allow for this.
  • Updated version of dependency android-async-http to 1.4.9
compile ''



2.2.1 26/7/2015 

  • Updated dependency on android-beacon-library to latest version
compile 'org.altbeacon:android-beacon-library:2.5.1'


2.2 18/5/2015

  • Added support for batching of tags, a number of new methods added to the SDK to enable this feature:

To turn on batching you can call the following methods when initialising XtremePush in your AppDelegate:

For batching of tags call:

[XPush setTagsBatchingEnabled:YES];

For batching of impressions call:

[XPush setImpressionsBatchingEnabled:YES];

With batching turned on tags or impressions will be cached when you call hitTag or hitImpression and released when you exit your app or when you call the sendTags or sendImpressions methods, as shown below:

To manually release tags:

[XPush sendTags];

To manually release impressions:

[XPush sendImpressions];

  • Added support for capturing of values/data along with tags, the hitTag method can now take an extra argument:

To tag events that capture a value and grab the value, use the hitTag method takes an extra argument for data hitTag(String tag, String data) for example:

// You might for example want to capture a form being filled out
mPushConnector.hitTag("form_1_field_1", "form_data");
Have more questions? Submit a request


Article is closed for comments.