Skip to main content

Android Releases

Version 4.2.0

  • Added "userId" special attribute key
  • Added "Attributes" object (map string/object) to the UserInfo
  • Added SdkRecordUserData value

Version 4.1.0

  • Switching to Firebase Messaging 22.0.0 which is has some breaking changes (removed InstantId)
  • Updated intent flags for Android S+ support
  • Removed direct boot aware from our receiver
  • Optimized the services

Required Dependencies

implementation "androidx.core:core:1.6.0"
implementation "androidx.media:media:1.4.1"
implementation "androidx.appcompat:appcompat:1.3.1"
implementation "androidx.annotation:annotation:1.2.0"
implementation "androidx.legacy:legacy-support-v4:1.0.0"
implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.room:room-runtime:2.3.0"

Optional Dependencies

compileOnly "com.google.android.gms:play-services-location:18.0.0"
compileOnly "com.google.firebase:firebase-messaging:22.0.0"
compileOnly "androidx.security:security-crypto:1.0.0"

Version 4.0.13

  • MsgTrackingId is set for campaign/notification display and inbox message only
  • Added logEvent for analytics

Version 4.0.12

  • Optimze signals checker
  • Updated dependencies

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.3.2"
implementation "androidx.media:media:1.2.1"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:18.0.0"
implementation "com.google.firebase:firebase-messaging:21.0.1"
implementation "androidx.security:security-crypto:1.0.0-rc04"

Version 4.0.11

  • Optimize our "moustache" string interpolation code
  • Updated dependencies

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.3.2"
implementation "androidx.media:media:1.2.1"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:17.1.0"
implementation "com.google.firebase:firebase-messaging:21.0.0"
implementation "androidx.security:security-crypto:1.0.0-rc03"

Version 4.0.10

  • Add EVENT_DELAY_MESSAGE_DEFAULT to be used for signalEvent() as the default delay
  • Add boolean areMessagesLoaded() to check if messages are loaded

Version 4.0.5

  • Fix predefined keys
  • Updated dependencies

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.3.2"
implementation "androidx.media:media:1.2.0"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:17.1.0"
implementation "com.google.firebase:firebase-messaging:20.3.0"
implementation "androidx.security:security-crypto:1.0.0-rc03"

Version 4.0.4

  • Add log goal with currency
  • Support for native javascript alerts/prompts with Custom HTML content
  • Add developer tools
  • Updated dependencies

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.3.1"
implementation "androidx.media:media:1.2.0"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:17.1.0"
implementation "com.google.firebase:firebase-messaging:20.3.0"
implementation "androidx.security:security-crypto:1.0.0-rc03"

Version 4.0.3

  • Fix some bugs in message usage database
  • Add proguard consumer line to prevent crash when using the EncryptedPreferences
  • Improve some code path during startup

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.3.0"
implementation "androidx.media:media:1.1.0"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:17.0.0"
implementation "com.google.firebase:firebase-messaging:20.2.1"
implementation "androidx.security:security-crypto:1.0.0-rc02"

Version 4.0.0

info

This is a major release which is not fully compatible with previous releases.

Required Dependencies

implementation "com.google.code.gson:gson:2.8.6"
implementation "androidx.appcompat:appcompat:1.1.0"
implementation "androidx.annotation:annotation:1.1.0"
implementation "androidx.core:core:1.2.0"
implementation "androidx.media:media:1.1.0"
implementation "androidx.legacy:legacy-support-v4:1.0.0"

Optional Dependencies

implementation "com.google.android.gms:play-services-location:17.0.0"
implementation "com.google.firebase:firebase-messaging:20.2.0"
implementation "androidx.security:security-crypto:1.0.0-rc02"

Library Manifest

This is the default manifest shipped with the library that will be merged by gradle with your application's manifest.

note

For more info about manifest merging, check the manifest merger guide.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.openback">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BATTERY_STATS" tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false" />
<uses-feature android:name="android.hardware.sensor.ambient_temperature" android:required="false" />
<uses-feature android:name="android.hardware.sensor.barometer" android:required="false" />
<uses-feature android:name="android.hardware.sensor.gyroscope" android:required="false" />
<uses-feature android:name="android.hardware.sensor.light" android:required="false" />
<uses-feature android:name="android.hardware.sensor.proximity" android:required="false" />
<uses-feature android:name="android.hardware.sensor.relative_humidity" android:required="false" />
<uses-feature android:name="android.hardware.wifi" android:required="false" />
<uses-feature android:name="android.software.webview" android:required="false" />

<application>
<activity
android:name="com.openback.activity.OpenBackIamActivity"
android:excludeFromRecents="true"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden"
android:configChanges="orientation|screenSize" />

<provider
android:name="com.openback.provider.OpenBackInitProvider"
android:authorities="${applicationId}.openbackinitprovider"
android:exported="false"
android:initOrder="100" />

<service
android:name="com.openback.service.OpenBackService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false" />
<service
android:name="com.openback.service.OpenBackAssetService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false" />

<service
android:name="com.openback.service.OpenBackFirebaseMessagingService"
android:exported="false">
<intent-filter android:priority="-1">
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

<receiver android:name="com.openback.receiver.OpenBackReceiver"
android:directBootAware="true"
tools:ignore="UnusedAttribute">
<intent-filter>
<!-- Boot Complete event (level 1) -->
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED"/>
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<action android:name="android.intent.action.DATE_CHANGED" />
</intent-filter>
<intent-filter>
<!-- Package events (level 3) -->
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<data android:scheme="package" />
</intent-filter>
<intent-filter>
<!-- Package events (level 12) -->
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
</application>

</manifest>