Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
How to open an activity after receiving a PUSH notification in Android?
This example demonstrate about How to open an activity after receiving a PUSH notification in Android
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to src/MyFirebaseMessagingService.java
<span class="kwd">package</span><span class="pln"> app</span><span class="pun">.</span><span class="pln">tutorialspoint</span><span class="pun">.</span><span class="pln">com</span><span class="pun">.</span><span class="pln">notifyme </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationChannel</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationManager</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">PendingIntent</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Context</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">content</span><span class="pun">.</span><span class="typ">Intent</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">support</span><span class="pun">.</span><span class="pln">v4</span><span class="pun">.</span><span class="pln">app</span><span class="pun">.</span><span class="typ">NotificationCompat</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">google</span><span class="pun">.</span><span class="pln">firebase</span><span class="pun">.</span><span class="pln">messaging</span><span class="pun">.</span><span class="typ">FirebaseMessagingService</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">import</span><span class="pln"> com</span><span class="pun">.</span><span class="pln">google</span><span class="pun">.</span><span class="pln">firebase</span><span class="pun">.</span><span class="pln">messaging</span><span class="pun">.</span><span class="typ">RemoteMessage</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">MyFirebaseMessagingService</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">FirebaseMessagingService</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd"> public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">=</span><span class="pln"> </span><span class="str">"10001"</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd"> private</span><span class="pln"> </span><span class="kwd">final</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="typ">String</span><span class="pln"> default_notification_channel_id </span><span class="pun">=</span><span class="pln"> </span><span class="str">"default"</span><span class="pln"> </span><span class="pun">;</span>
<span class="lit"> @Override</span>
<span class="kwd"> public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onNewToken </span><span class="pun">(</span><span class="typ">String</span><span class="pln"> s</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd"> super</span><span class="pln"> </span><span class="pun">.</span><span class="pln">onNewToken</span><span class="pun">(</span><span class="pln">s</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun"> }</span>
<span class="lit"> @Override</span>
<span class="kwd"> public</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> onMessageReceived </span><span class="pun">(</span><span class="typ">RemoteMessage</span><span class="pln"> remoteMessage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd"> super</span><span class="pln"> </span><span class="pun">.</span><span class="pln">onMessageReceived</span><span class="pun">(</span><span class="pln">remoteMessage</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ"> Intent</span><span class="pln"> notificationIntent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span><span class="typ">MainActivity</span><span class="pun">.</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln"> notificationIntent</span><span class="pun">.</span><span class="pln">putExtra</span><span class="pun">(</span><span class="pln"> </span><span class="str">"NotificationMessage"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> </span><span class="str">"I am from Notification"</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln"> notificationIntent</span><span class="pun">.</span><span class="pln">addCategory</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> CATEGORY_LAUNCHER </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln"> notificationIntent</span><span class="pun">.</span><span class="pln">setAction</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> ACTION_MAIN </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln"> notificationIntent</span><span class="pun">.</span><span class="pln">setFlags</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> FLAG_ACTIVITY_CLEAR_TOP </span><span class="pun">| </span><span class="typ">Intent</span><span class="pun">.</span><span class="pln"> FLAG_ACTIVITY_SINGLE_TOP </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ"> PendingIntent</span><span class="pln"> resultIntent </span><span class="pun">=</span><span class="pln"> </span><span class="typ">PendingIntent</span><span class="pun">.</span><span class="pln"> getActivity </span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span><span class="lit">0</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> notificationIntent </span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">; </span>
<span class="typ"> NotificationCompat</span><span class="pun">.</span><span class="typ">Builder</span><span class="pln"> mBuilder </span><span class="pun">= </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">NotificationCompat</span><span class="pun">.</span><span class="typ">Builder</span><span class="pun">(</span><span class="pln">getApplicationContext</span><span class="pun">()</span><span class="pln"> </span><span class="pun">, </span>
<span class="pun"> </span><span class="pln">default_notification_channel_id </span><span class="pun">)</span>
<span class="pun"> .</span><span class="pln">setSmallIcon</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">drawable</span><span class="pun">.</span><span class="pln"> ic_launcher_foreground </span><span class="pun">)</span>
<span class="pun"> .</span><span class="pln">setContentTitle</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Test"</span><span class="pln"> </span><span class="pun">)</span>
<span class="pun"> .</span><span class="pln">setContentText</span><span class="pun">(</span><span class="pln"> </span><span class="str">"Hello! This is my first push notification"</span><span class="pln"> </span><span class="pun">)</span>
<span class="pun"> .</span><span class="pln">setContentIntent</span><span class="pun">(</span><span class="pln">resultIntent</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="typ"> NotificationManager</span><span class="pln"> mNotificationManager </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="typ">NotificationManager</span><span class="pun">) </span><span class="pln">getSystemService</span><span class="pun">(</span><span class="typ">Context</span><span class="pun">.</span><span class="pln"> NOTIFICATION_SERVICE </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd"> if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION</span><span class="pun">.</span><span class="pln"> SDK_INT </span><span class="pun">>=</span><span class="pln"> android</span><span class="pun">.</span><span class="pln">os</span><span class="pun">.</span><span class="typ">Build</span><span class="pun">.</span><span class="pln">VERSION_CODES</span><span class="pun">.</span><span class="pln"> O </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span>
<span class="kwd"> int</span><span class="pln"> importance </span><span class="pun">=</span><span class="pln"> </span><span class="typ">NotificationManager</span><span class="pun">.</span><span class="pln"> IMPORTANCE_HIGH </span><span class="pun">;</span>
<span class="typ"> NotificationChannel</span><span class="pln"> notificationChannel </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span>
<span class="typ"> NotificationChannel</span><span class="pun">(</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">,</span><span class="pln"> </span><span class="str">"NOTIFICATION_CHANNEL_NAME"</span><span class="pln"> </span><span class="pun">,</span><span class="pln"> importance</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pln"> mBuilder</span><span class="pun">.</span><span class="pln">setChannelId</span><span class="pun">(</span><span class="pln"> NOTIFICATION_CHANNEL_ID </span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="kwd">assert</span><span class="pln"> mNotificationManager </span><span class="pun">!=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span>
<span class="pln"> mNotificationManager</span><span class="pun">.</span><span class="pln">createNotificationChannel</span><span class="pun">(</span><span class="pln">notificationChannel</span><span class="pun">)</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun"> }</span>
<span class="kwd"> assert</span><span class="pln"> mNotificationManager </span><span class="pun">!=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">;</span>
<span class="pln"> mNotificationManager</span><span class="pun">.</span><span class="pln">notify</span><span class="pun">((</span><span class="pln"> </span><span class="kwd">int</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="typ">System</span><span class="pun">.</span><span class="pln"> currentTimeMillis </span><span class="pun">()</span><span class="pln"> </span><span class="pun">,</span>
<span class="pln"> mBuilder</span><span class="pun">.</span><span class="pln">build</span><span class="pun">())</span><span class="pln"> </span><span class="pun">;</span>
<span class="pun"> }</span>
<span class="pun">}</span>
Click here to download the project code
Advertisements
