With the release of 6.39, we have introduced a new API to fetch In-App Messages at app launch. Once you turn-on this feature in Responsys Interact, you should use the below API to enable this feature in the SDK.
PushIOManager.getInstance(this).setInAppFetchEnabled(true);
Thereafter, the In-App messages shall be delivered to the app via a pull-based mechanism.
For any new In-App message implementation or upgrade to 6.39, we strongly recommend enabling this feature both in the SDK and for your Account at Responsys.
With the release of 6.38.1, the SDK is compatible with FCM (Firebase Cloud Messaging). If you wish to use FCM libraries in your app, it is recommended that you remove the GCM library dependency and vice-versa.
dependencies {
// implementation 'com.google.android.gms:play-services-gcm:15.0.1'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
}
With the release of 6.38, we have introduced a new feature to report all SDK-related (internal) crash/issues back to Responsys. This feature is enabled by default. The following API can be used to toggle this feature,
PushIOManager.getInstance(this).setCrashLoggingEnabled(true);
With the release of 6.33.2, we have modified the following registration API methods,
PushIOManager.getInstance(this).registerApp();
PushIOManager.getInstance(this).registerApp( boolean useLocation );
As with the previous release, the API - PushIOManager.registerApp()
brings up a modal prompt at runtime for requesting location access.
If you would like to defer requesting the location access to a later stage, you should use the new API - PushIOManager.registerApp( boolean useLocation )
. The boolean
parameter value here is persisted and subsequent registration calls to Responsys backend (for ex. via registerApp()
or registerUserId()
) use this value to check if location access is to be requested.
With the release of 6.33.1, we have added a new API for registration.
PushIOManager.getInstance(this).registerApp( boolean useLocation );
The existing API for registration - PushIOManager.registerApp()
brings up a modal prompt for requesting location access, which may not be suitable for all the apps. With the new API, it is now possible to do a PushIO registration without location data. This might be useful in a scenario where your app would like to defer the request for location.
If you do a PushIO registration without location data, it is recommended to also do a PushIO registration with location data at a later stage when your app is ready to request location access.
PushIO SDK now requires a minimum Android SDK version of 16. Update the module-level build.gradle
file as follows:
android {
defaultConfig {
minSdkVersion 16
}
}
Requesting device location shows a prompt at runtime for apps targeting Android Marshmallow (API 23) and above. See Permissions for more details.
- PushIO SDK now requires minimum SDK version of 14 (Ice Cream Sandwich). So remember to update your modules'
build.gradle
file,
android {
defaultConfig {
minSdkVersion 14
}
}
- The internal GCM implementation has been updated to not conflict with other libraries using GCM within your app. As part of this change, you are required to declare the following services under the
<application>
tag in the AndroidManifest.xml file.
<application>
<service android:name="com.pushio.manager.PIOGCMRegistrationIntentService"
android:exported="false"/>
<service
android:name="com.pushio.manager.PIOInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
</application>
- Also, as part of this update, the following libraries are now required in the
dependencies
section of your modules'build.gradle
file.
dependencies {
compile 'com.google.android.gms:play-services-location:10.2.0'
compile 'com.google.android.gms:play-services-gcm:10.2.0'
}
If you followed the above steps and registration was successful but have not received any push notifications since upgrading the PushIO SDK,
- Verify that your Google project has been correctly imported into Firebase. If you have not yet done that, you will need to migrate your GCM project from Google Cloud to Firebase as Firebase is the recommended platform for Cloud Messaging going forward.
- Try changing the Server Key to the new format as generated by Firebase.
- In the Firebase console, select your project, click the Settings menu icon (the icon that resembles a gear), then choose 'Project Settings' and under 'Cloud Messaging' tab, you should see the new format
Server Key
along with the old Server Key. - Copy the new Server Key and add it to the PushIO/RI dashboard as shown in section [1.2] of our Step-by-Step guides (http://docs.oracle.com/cloud/latest/marketingcs_gs/OMCFA/android/step-by-step/, http://docs.oracle.com/cloud/latest/marketingcs_gs/OMCFB/android/step-by-step/)
- In the Firebase console, select your project, click the Settings menu icon (the icon that resembles a gear), then choose 'Project Settings' and under 'Cloud Messaging' tab, you should see the new format
- [Downloads + Documenation] (http://docs.push.io)
- [Sign In / Sign Up] (https://manage.push.io)
- Support: [My Oracle Support] (http://support.oracle.com)
Copyright © 2016, Oracle Corporation and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.