Copy the in-app messaging resources below into your Manifest.xml between the <application>
and </application>
tags.
<activity android:name="com.microsoft.azure.engagement.reach.activity.EngagementTextAnnouncementActivity" android:theme="@android:style/Theme.Light" android:exported="false">
<intent-filter>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.ANNOUNCEMENT"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
<activity android:name="com.microsoft.azure.engagement.reach.activity.EngagementWebAnnouncementActivity" android:theme="@android:style/Theme.Light" android:exported="false">
<intent-filter>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.ANNOUNCEMENT"/>
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/html" />
</intent-filter>
</activity>
<activity android:name="com.microsoft.azure.engagement.reach.activity.EngagementPollActivity" android:theme="@android:style/Theme.Light" android:exported="false">
<intent-filter>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.POLL"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.microsoft.azure.engagement.reach.activity.EngagementLoadingActivity" android:theme="@android:style/Theme.Dialog" android:exported="false">
<intent-filter>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.LOADING"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<receiver android:name="com.microsoft.azure.engagement.reach.EngagementReachReceiver" android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="com.microsoft.azure.engagement.intent.action.AGENT_CREATED"/>
<action android:name="com.microsoft.azure.engagement.intent.action.MESSAGE"/>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.ACTION_NOTIFICATION"/>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.EXIT_NOTIFICATION"/>
<action android:name="com.microsoft.azure.engagement.reach.intent.action.DOWNLOAD_TIMEOUT"/>
</intent-filter>
</receiver>
<receiver android:name="com.microsoft.azure.engagement.reach.EngagementReachDownloadReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
Paste the following XML snippet in your Manifest.xml between the <application>
and </application>
tags.
<meta-data android:name="engagement:reach:notification:icon" android:value="engagement_close"/>
This defines the icon that is displayed both in system and in-app notifications. It is optional for in-app notifications however mandatory for system notifications. Android will rejects system notifications with invalid icons.
Make sure you are using an icon that exists in one of the drawable folders (like engagement_close.png
). mipmap folder isn't supported.
Note
You should not use the launcher icon. It has a different resolution and is usually in the mipmap folders, which we don't support.
For real apps, you can use an icon that is suitable for notifications per Android design guidelines.
Tip
To be sure to use correct icon resolutions, you can look at these examples.
Scroll down to the Notification section, click an icon, and then click PNGS
to download the icon drawable set. You can see what drawable folders with which resolution to use for each version of the icon.
-
Paste the following into your Manifest.xml between the
<application>
and</application>
tags after replacing the Sender ID obtained from your Firebase project console. The \n is intentional so make sure that you end the project number with it.<meta-data android:name="engagement:gcm:sender" android:value="************\n" />
-
Paste the code below into your Manifest.xml between the
<application>
and</application>
tags. Replace the package name .<receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMEnabler" android:exported="false"> <intent-filter> <action android:name="com.microsoft.azure.engagement.intent.action.APPID_GOT" /> </intent-filter> </receiver> <receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMReceiver" android:permission="com.google.android.c2dm.permission.SEND"> <intent-filter> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="<Your package name>" /> </intent-filter> </receiver>
-
Add the last set of permissions that are highlighted before the
<application>
tag. Replace<Your package name>
by the actual package name of your application.<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="<Your package name>.permission.C2D_MESSAGE" /> <permission android:name="<Your package name>.permission.C2D_MESSAGE" android:protectionLevel="signature" />