Release notes and asset downloads
Latest version
The easiest way to use the Xtremepush SDK is to include the repository as described in the guide to Import the Android SDK. In cases where that's not possible, you can download the latest release here.
9.8.2
Improvements made to inbox badging
9.8.1
Bugfix around regression bug in push click
9.8.0
Added handling for push primer click action
Added public method for if user can be shown notification prompt
Session handling improvement
Fixed the issue of duplicate pushes
Fixed the issue of race condition for
PushConnectorlaunching from inbox activity
9.7.2
Improved loyalty feature to allow for path and params
9.7.1
Removed code path to enable debuggable inbox and loyalty if logs are enabled
9.7.0
Implementation of loyalty feature
Added additional configuration for hostname verification
9.6.3
Bugfix around custom payloads
9.6.2
Small security improvements
Improved resource management
Small bug fix
Previous versions
9.6.1
Improvement for XP Message intent object
9.6.0
Turned encrypted shared preferences off by default
9.5.0
Improved persistance flow
Bugfix around webview handling
9.4.5
Reduced surplus api calls
9.4.4
Improved receiver handling
9.4.3
Bugfixes in notification handling and network connector
9.4.2
Reduced surplus api calls
9.4.1
Improved inapp polling behaviour
9.4.0
Added inapp polling feature
9.3.11
2024-09-13
Download
Improved in-app handling
Improved flow around SDK API's on launch
Include campaign ID in in-app click callback
9.3.7
2024-09-13
Download
Improved handling when migrating projects
Bugfix around potential loop in shared preferences
9.3.5
2024-07-31
Download
Improved broadcast receiver behaviour and handling
9.3.3
2024-07-14
Improved persistence handling
Added functionality to refresh stale tokens
Removed potential blocker on main thread
9.3.1
2024-04-29
Improved encryption types
9.3.0
2024-02-06
Added encrypted ShredPreferences
Bugfix to remove possibility of intent being read and accessed at same time
9.2.4
2024-01-22
Improved message controls
Bugfix to prevent Firebase token race condition
9.2.2
2023-10-10
Improved message controls for distinct messageOpen and messageClick
9.2.0
2023-05-11
Changed networking library to improve reliability
9.1.4
2022-11-25
Download
Improved location functionality
Fixed issue on integration from non ui thread
9.1.1
2022-11-25
Download
Improved inbox control and handling
9.1.0
2022-08-19
Download
Android 13 compatibility
Added notification permission handling
9.0.3
2022-03-04
Download
Improved inboxList handling
9.0.2
2021-12-15
Download
Added message context to delivered and actionHit endpoint
Dependency update
Minor bugfix
9.0.0
2021-11-03
Download
Android 12 compatibility
Location permissions removed from SDK by default
8.2.1
2021-09-30
Download
Added functionality to disable notification dots
8.1.1
2021-04-23
Download
Removed LegacyStorage permission
Added additional handling around location functionality
8.1.0
2020-12-21
Download
Added functionality for encrypted push messages
7.9.0
2020-08-10
Download
Added functionality for delivery receipts
7.8.4
2020-04-27
Download
Updated task affinity to empty string
7.8.3
2020-02-25
Download
Minor bugfix
7.8.2
2020-01-27
Added additional handling around opening URLs
7.8.1
2019-12-09
Added functionality to persist list of recently received push messages to prevent possibility of duplicate sends
7.8.0
2019-09-25
Added functionality to allow for custom network configurations
Minor bugfix
7.6.2
2019-09-11
Additional edge-case handling
Minor bugfix
7.6.1
2019-08-06
Improved handling of beacon functionality
Minor bugfix
7.6.0
2019-08-02
Added import user function
7.5.0
2019-07-24
Added client facing function to call location prompt when required
Added functions to manage channel preferences and subscriptions
Minor bug fixes
7.4.0
2019-06-17
Delete inbox message functionality added
InboxListListener has callback should api fail
7.2.2
2019-04-24
Added bugfix in lifecycle listener
7.2.1
2019-04-02
Added senderID update
Improved google-services.json utility
7.2.0
2019-03-01
Migrated from GCM to FCM
Added addition handling for multiple firebase push providers
Minor bug fixes
6.4.2
2018-12-06
Added credential update listener interface
Minor bug fixes
6.3.1
2018-11-12
Improved inbox handling
6.3.0
2018-11-02
Added
InboxListListenerinterfaceMinor bug fix
6.2.2
2018-08-29
Minor bug fix
6.2.1
2018-08-17
Minor bug fix
6.2.0
2018-08-07
Included functionality to allow for notification sounds in android Oreo
6.1.1
2018-07-26
Minor update to improve location functionality in Oreo and greater devices
6.0.0
2018-02-20
Major performance update for geo-fence and iBeacon functionality for use when targeting Android Oreo
Notification channel support for use when targeting Android Oreo
User profile functions added, for tying in with server-side profile support
setUser(String userId)For the persisting user identifier of the primary login in an app
setTempUser(String userId)For a secondary login in the app which temporarily overrides the primary app login
5.0.0
2017-09-26
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
2017-07-24
setExternalId(String)function addedAdded
hitEvent(String, HashMap<String, String>)function to allow key value params to be sent with event hitsExtra debug logging added
Minor bug fix
4.2.0
2017-07-10
PushMessage to JSON function added
Inbox badge update when app comes into the foreground
4.1.1
2017-06-28
Improved notification handling
Minor bug fix
4.1.0
2017-06-22
hitEventmethod simplifiedHandling added to prevent malformed beacon UUID from being added to list
Improvements made to beacon functionality
Improved InApp messages rotation
Added
setSubscriptionfunction, which allows for the push messages to be toggled on or off programaticallyAdded method
addToExclusionList, which allows for certain Activities to not instantiate PushConnectorPushConnector.addToExclusionList(ClassName.class.getSimpleName());Minor bug fixes added
4.0.2
2017-03-29
Minor regression bug fix to prevent edge-case NullPointerException
4.0.1
2017-03-21
Inbox badge updates when a push is received
Minor regression bug fix based on inbox close
4.0.0
2017-02-22
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
2016-12-14
Download
Additional support for multi-window mode (Android N)
Minor update to accommodate mipmaps
3.5.1
2016-08-25
Minor update to location functionality
Improved handling of runtime permission requests
3.5.0
2016-06-22
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) .setWearNotificationBackground("image_name_no_file_extension") .create(this);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) .setNotificationHandlerActivity(MyPushActivity.class) .create(this);
3.4.0
2016-03-03
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)
.setEnableGeo(true)
.setLowPowerGeo(true)
.create(this);3.3.0
2016-02-17
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) .setEnableGeo(true) .setRequestPermissions(true, "title", "message") .create(this);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) .setEnableGeo(true) .setEnableLocationDialog(false) .create(this);Fixed issue where XP service was not getting initialised on some devices on boot. This requires a minor change in the integration in
AndroidManifest.xmlto add in the 5 lines in blue (the second intent-filter element):<receiver android:name="ie.imobile.extremepush.receivers.GCMReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter>\ <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <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" /> </intent-filter>\ <intent-filter> <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" /> </intent-filter>\ </receiver>
3.2.0
2016-01-29
Feature added to completely separate push, In-app, Geo and Beacon functionality so that each one can be enabled without 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 theApplicationelement inAndroidManifest.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_NUMBERis 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) .setEnableGeo(false) .setEnableBeacons(false) .setEnableInApp(true) .create(this);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) .setRequestPermissions(false) .create(this);
3.1.3
2016-01-06
There are no changes to the integration procedure
Minor bug fix
3.1.2
2015-12-17
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) .setImmediatePushProcessing(true) .create(this);Minor bug fix
3.1.1
2015-12-09
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) .setEnableLocations(true) .setRequestPermissions(true) .create(this);Updated version of dependency support v4
compile 'com.android.support:support-v4:23.1.1'Minor bug fixes
3.0
2015-11-25
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
showAlertDialogdeprecated. There is still full support for displaying a push in a dialog when the App is openUpdated version of dependency play-services to 8.3
compile 'com.google.android.gms:play-services:8.3.0'Updated version of dependency android-beacon-library to 2.6.
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 'com.google.code.gson:gson:2.4'
2.2.2
2015-09-22
Download
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 'com.loopj.android:android-async-http:1.4.9'2.2.1
2015-07-26
Updated dependency on android-beacon-library to latest version
compile 'org.altbeacon:android-beacon-library:2.5.1'
2.2
2015-05-18
Added support for batching of tags. 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
sendTagsorsendImpressionsmethods, as shown below:Added support for capturing values/data along with tags, the
hitTagmethod can now take an extra argument