Generate Notification Key In Android
- Security keys are a more secure second step. If you have other second steps set up, use your security key to sign in whenever possible. If a security key doesn't work on your device or browser, you might see an option to sign in with a code or prompt instead.
- Sending/displaying a notification is one of the easy things to do in Android. To create and display an Android notification, all you have to do is: Create the title text (ticker text) to display in the status bar when the notification is shown. Use an icon to show in the status bar after the notification goes away.
In this article, we are going to generate a push notification in our android device with the help of NotificationManager class. Submitted by Manu Jemini, on February 09, 2018 In the example below, we are going to use the NotificationManager and Notification class to create and show the notification.
- Android Basics
- Android - User Interface
- Android Advanced Concepts
- Android Useful Examples
- Android Useful Resources
- Selected Reading
A notification is a message you can display to the user outside of your application's normal UI. When you tell the system to issue a notification, it first appears as an icon in the notification area. To see the details of the notification, the user opens the notification drawer. Both the notification area and the notification drawer are system-controlled areas that the user can view at any time.
Android Toast class provides a handy way to show users alerts but problem is that these alerts are not persistent which means alert flashes on the screen for a few seconds and then disappears.
To see the details of the notification, you will have to select the icon which will display notification drawer having detail about the notification. While working with emulator with virtual device, you will have to click and drag down the status bar to expand it which will give you detail as follows. This will be just 64 dp tall and called normal view.
Above expanded form can have a Big View which will have additional detail about the notification. You can add upto six additional lines in the notification. The following screen shot shows such notification.
Create and Send Notifications
You have simple way to create a notification. Follow the following steps in your application to create a notification −
Step 1 - Create Notification Builder
As a first step is to create a notification builder using NotificationCompat.Builder.build(). You will use Notification Builder to set various Notification properties like its small and large icons, title, priority etc.
Step 2 - Setting Notification Properties
Once you have Builder object, you can set its Notification properties using Builder object as per your requirement. But this is mandatory to set at least following −
A small icon, set by setSmallIcon()
A title, set by setContentTitle()
Detail text, set by setContentText()
You have plenty of optional properties which you can set for your notification. To learn more about them, see the reference documentation for NotificationCompat.Builder.
Step 3 - Attach Actions
This is an optional part and required if you want to attach an action with the notification. An action allows users to go directly from the notification to an Activity in your application, where they can look at one or more events or do further work.
The action is defined by a PendingIntent containing an Intent that starts an Activity in your application. To associate the PendingIntent with a gesture, call the appropriate method of NotificationCompat.Builder. For example, if you want to start Activity when the user clicks the notification text in the notification drawer, you add the PendingIntent by calling setContentIntent().
A PendingIntent object helps you to perform an action on your applications behalf, often at a later time, without caring of whether or not your application is running.
We take help of stack builder object which will contain an artificial back stack for the started Activity. This ensures that navigating backward from the Activity leads out of your application to the Home screen.
Step 4 - Issue the notification
Finally, you pass the Notification object to the system by calling NotificationManager.notify() to send your notification. Make sure you call NotificationCompat.Builder.build() method on builder object before notifying it. This method combines all of the options that have been set and return a new Notification object.
The NotificationCompat.Builder Class
The NotificationCompat.Builder class allows easier control over all the flags, as well as help constructing the typical notification layouts. Following are few important and most frequently used methods available as a part of NotificationCompat.Builder class.
Sr.No. | Constants & Description |
---|---|
1 | Notification build() Combine all of the options that have been set and return a new Notification object. |
2 | NotificationCompat.Builder setAutoCancel (boolean autoCancel) Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel. |
3 | NotificationCompat.Builder setContent (RemoteViews views) Supply a custom RemoteViews to use instead of the standard one. |
4 | NotificationCompat.Builder setContentInfo (CharSequence info) Set the large text at the right-hand side of the notification. |
5 | NotificationCompat.Builder setContentIntent (PendingIntent intent) Supply a PendingIntent to send when the notification is clicked. |
6 | NotificationCompat.Builder setContentText (CharSequence text) Set the text (second row) of the notification, in a standard notification. |
7 | NotificationCompat.Builder setContentTitle (CharSequence title) Set the text (first row) of the notification, in a standard notification. |
8 | NotificationCompat.Builder setDefaults (int defaults) Set the default notification options that will be used. |
9 | NotificationCompat.Builder setLargeIcon (Bitmap icon) Set the large icon that is shown in the ticker and notification. |
10 | NotificationCompat.Builder setNumber (int number) Set the large number at the right-hand side of the notification. |
11 | NotificationCompat.Builder setOngoing (boolean ongoing) Set whether this is an ongoing notification. |
12 | NotificationCompat.Builder setSmallIcon (int icon) Set the small icon to use in the notification layouts. |
13 | NotificationCompat.Builder setStyle (NotificationCompat.Style style) Add a rich notification style to be applied at build time. |
14 | NotificationCompat.Builder setTicker (CharSequence tickerText) Set the text that is displayed in the status bar when the notification first arrives. |
15 | NotificationCompat.Builder setVibrate (long[] pattern) Set the vibration pattern to use. |
16 | NotificationCompat.Builder setWhen (long when) Set the time that the event occurred. Notifications in the panel are sorted by this time. |
Example
Following example shows the functionality of a Android notification using a NotificationCompat.Builder Class which has been introduced in Android 4.1.
Step | Description |
---|---|
1 | You will use Android studio IDE to create an Android application and name it as tutorialspoint under a package com.example.notificationdemo. |
2 | Modify src/MainActivity.java file and add the code to notify('), if user click on the button,it will call android notification service. |
3 | Create a new Java file src/NotificationView.java, which will be used to display new layout as a part of new activity which will be started when user will click any of the notifications |
4 | Modify layout XML file res/layout/activity_main.xml to add Notification button in relative layout. |
5 | Create a new layout XML file res/layout/notification.xml. This will be used as layout file for new activity which will start when user will click any of the notifications. |
6 | No need to change default string constants. Android studio takes care of default string constants |
7 | Run the application to launch Android emulator and verify the result of the changes done in the application. |
Following is the content of the modified main activity file src/com.example.notificationdemo/MainActivity.java. This file can include each of the fundamental lifecycle methods.
Following will be the content of res/layout/notification.xml file −
Following is the content of the modified main activity file src/com.example.notificationdemo/NotificationView.java.
Following will be the content of res/layout/activity_main.xml file −
Following will be the content of res/values/strings.xml to define two new constants −
Following is the default content of AndroidManifest.xml −
Let's try to run your tutorialspoint application. I assume you had created your AVD while doing environment set-up. To run the APP from Android Studio, open one of your project's activity files and click Run icon from the toolbar. Android Studio installs the app on your AVD and starts it and if everything is fine with your setup and application, it will display following Emulator window −
Free rider 2 mac download. Now click button, you will see at the top a message 'New Message Alert!' will display momentarily and after that you will have following screen having a small icon at the top left corner.
Now lets expand the view, long click on the small icon, after a second it will display date information and this is the time when you should drag status bar down without releasing mouse. You will see status bar will expand and you will get following screen −
Big View Notification
The following code snippet demonstrates how to alter the notification created in the previous snippet to use the Inbox big view style. I'm going to update displayNotification() modification method to show this functionality −
Now if you will try to run your application then you will find following result in expanded form of the view −
Android Studio includes keyboard shortcuts for many common actions. Table 1shows the default keyboard shortcuts by operating system. Keep in mind, becauseAndroid Studio is based on IntelliJ IDEA, you can find additional shortcuts inthe IntelliJ IDEA keymap reference documentation.
Generate Notification Key In Android App
Note: In addition to the default keymaps intable 1 below, you can select from a number of preset keymaps or create a customkeymap. For more about customizing your keyboard shortcuts, seeConfigure Custom Keymaps, below.
Table 1. Default keyboard shortcuts for Windows/Linux and Mac operating systems.
Description | Windows/Linux | Mac |
---|---|---|
General | ||
Save all | Control+S | Command+S |
Synchronize | Control+Alt+Y | Command+Option+Y |
Maximize/minimize editor | Control+Shift+F12 | Control+Command+F12 |
Add to favorites | Alt+Shift+F | Option+Shift+F |
Inspect current file with current profile | Alt+Shift+I | Option+Shift+I |
Quick switch scheme | Control+` (backquote) | Control+` (backquote) |
Open settings dialogue | Control+Alt+S | Command+, (comma) |
Open project structure dialog | Control+Alt+Shift+S | Command+; (semicolon) |
Switch between tabs and tool window | Control+Tab | Control+Tab |
Navigating and searching within Studio | ||
Search everything (including code and menus) | Press Shift twice | Press Shift twice |
Find | Control+F | Command+F |
Find next | F3 | Command+G |
Find previous | Shift+F3 | Command+Shift+G |
Replace | Control+R | Command+R |
Find action | Control+Shift+A | Command+Shift+A |
Search by symbol name | Control+Alt+Shift+N | Command+Option+O |
Find class | Control+N | Command+O |
Find file (instead of class) | Control+Shift+N | Command+Shift+O |
Find in path | Control+Shift+F | Command+Shift+F |
Open file structure pop-up | Control+F12 | Command+F12 |
Navigate between open editor tabs | Alt+Right Arrow or Left Arrow | Control+Right Arrow or Control+Left Arrow |
Jump to source | F4 or Control+Enter | F4 or Command+Down Arrow |
Open current editor tab in new window | Shift+F4 | Shift+F4 |
Recently opened files pop-up | Control+E | Command+E |
Recently edited files pop-up | Control+Shift+E | Command+Shift+E |
Go to last edit location | Control+Shift+Backspace | Command+Shift+Delete |
Close active editor tab | Control+F4 | Command+W |
Return to editor window from a tool window | Esc | Esc |
Hide active or last active tool window | Shift+Esc | Shift+Esc |
Go to line | Control+G | Command+L |
Open type hierarchy | Control+H | Control+H |
Open method hierarchy | Control+Shift+H | Command+Shift+H |
Open call hierarchy | Control+Alt+H | Control+Option+H |
Viewing layouts | ||
Zoom in/out | Control+plus or Control+minus | Command+plus or Command+minus |
Fit to screen | Control+0 | Command+0 |
Actual size | Control+Shift+1 | Command+Shift+1 |
Design tools: Layout Editor | ||
Toggle between Design and Blueprint modes | B | B |
Toggle between Portrait and Landscape modes | O | O |
Toggle devices | D | D |
Force refresh | R | R |
Toggle render errors panel | E | E |
Delete constraints | Delete or Control+click | Delete or Command+click |
Zoom in | Control+plus | Command+plus |
Zoom out | Control+minus | Command+minus |
Zoom to fit | Control+0 | Command+0 |
Pan | Hold Space+click and drag | Hold Space+click and drag |
Go to XML | Control+B | Command+B |
Select all components | Control+A | Command+A |
Select multiple components | Shift+click or Control+click | Shift+click or Command+click |
Design tools: Navigation Editor | ||
Zoom in | Control+plus | Command+plus |
Zoom out | Control+minus | Command+minus |
Zoom to fit | Control+0 | Command+0 |
Pan | Hold Space+click and drag | Hold Space+click and drag |
Go to XML | Control+B | Command+B |
Toggle render errors panel | E | E |
Group into nested graph | Control+G | Command+G |
Cycle through destinations | Tab or Shift+Tab | Tab or Shift+Tab |
Select all destinations | Control+A | Command+A |
Select multiple destinations | Shift+click or Control+click | Shift+click or Command+click |
Writing code | ||
Generate code (getters, setters, constructors, hashCode/equals, toString, new file, new class) | Alt+Insert | Command+N |
Override methods | Control+O | Control+O |
Implement methods | Control+I | Control+I |
Surround with (if..else / try..catch / etc.) | Control+Alt+T | Command+Option+T |
Delete line at caret | Control+Y | Command+Delete |
Collapse/expand current code block | Control+minus or Control+plus | Command+minus or Command+plus |
Collapse/expand all code blocks | Control+Shift+minus or Control+Shift+plus | Command+Shift+minus or Command+Shift+plus |
Duplicate current line or selection | Control+D | Command+D |
Basic code completion | Control+Space | Control+Space |
Smart code completion (filters the list of methods and variables by expected type) | Control+Shift+Space | Control+Shift+Space |
Complete statement | Control+Shift+Enter | Command+Shift+Enter |
Quick documentation lookup | Control+Q | Control+J |
Show parameters for selected method | Control+P | Command+P |
Go to declaration (directly) | Control+B or Control+click | Command+B or Command+click |
Go to implementations | Control+Alt+B | Command+Option+B |
Go to super-method/super-class | Control+U | Command+U |
Open quick definition lookup | Control+Shift+I | Command+Y |
Toggle project tool window visibility | Alt+1 | Command+1 |
Toggle bookmark | F11 | F3 |
Toggle bookmark with mnemonic | Control+F11 | Option+F3 |
Comment/uncomment with line comment | Control+/ | Command+/ |
Comment/uncomment with block comment | Control+Shift+/ | Command+Shift+/ |
Select successively increasing code blocks | Control+W | Option+Up |
Decrease current selection to previous state | Control+Shift+W | Option+Down |
Move to code block start | Control+[ | Option+Command+[ |
Move to code block end | Control+] | Option+Command+] |
Select to the code block start | Control+Shift+[ | Option+Command+Shift+[ |
Select to the code block end | Control+Shift+] | Option+Command+Shift+] |
Delete to end of word | Control+Delete | Option+Delete |
Delete to start of word | Control+Backspace | Option+Delete |
Optimize imports | Control+Alt+O | Control+Option+O |
Project quick fix (show intention actions and quick fixes) | Alt+Enter | Option+Enter |
Reformat code | Control+Alt+L | Command+Option+L |
Auto-indent lines | Control+Alt+I | Control+Option+I |
Indent/unindent lines | Tab or Shift+Tab | Tab or Shift+Tab |
Smart line join | Control+Shift+J | Control+Shift+J |
Smart line split | Control+Enter | Command+Enter |
Start new line | Shift+Enter | Shift+Enter |
Next/previous highlighted error | F2 or Shift+F2 | F2 or Shift+F2 |
Build and run | ||
Build | Control+F9 | Command+F9 |
Build and run | Shift+F10 | Control+R |
Apply Changes and Restart Activity | Control+F10 | Control+Command+R |
Apply Code Changes | Control+Alt+F10 | Control+Shift+Command+R |
Debugging | ||
Debug | Shift+F9 | Control+D |
Step over | F8 | F8 |
Step into | F7 | F7 |
Smart step into | Shift+F7 | Shift+F7 |
Step out | Shift+F8 | Shift+F8 |
Run to cursor | Alt+F9 | Option+F9 |
Evaluate expression | Alt+F8 | Option+F8 |
Resume program | F9 | Command+Option+R |
Toggle breakpoint | Control+F8 | Command+F8 |
View breakpoints | Control+Shift+F8 | Command+Shift+F8 |
Refactoring | ||
Copy | F5 | F5 |
Move | F6 | F6 |
Safe delete | Alt+Delete | Command+Delete |
Rename | Shift+F6 | Shift+F6 |
Change signature | Control+F6 | Command+F6 |
Inline | Control+Alt+N | Command+Option+N |
Extract method | Control+Alt+M | Command+Option+M |
Extract variable | Control+Alt+V | Command+Option+V |
Extract field | Control+Alt+F | Command+Option+F |
Extract constant | Control+Alt+C | Command+Option+C |
Extract parameter | Control+Alt+P | Command+Option+P |
Version control / local history | ||
Commit project to VCS | Control+K | Command+K |
Update project from VCS | Control+T | Command+T |
View recent changes | Alt+Shift+C | Option+Shift+C |
Open VCS popup | Alt+` (backquote) | Control+V |
Configure custom keymaps
You can choose from a number of preset keymaps or modify a preset keymap tocreate a new custom keymap in the keymap settings for Android Studio.
Android Developer Notifications
To open the keymap settings, choose File > Settings (on Mac, AndroidStudio > Preferences) and navigate to the Keymap pane.
Figure 1. The Android Studio keymap settings window.
- Keymaps dropdown: Select the desired keymap from this menu to switch between preset keymaps.
- Actions list: Right click on an action to modify it. You can add additional keyboard shortcuts for the action, add mouse shortcuts to associate an action with a mouse click, or remove current shortcuts. If you are using a preset keymap, modifying an action’s shortcuts will automatically create a copy of the keymap and add your modifications to the copy.
- Copy button: Select a keymap from the dropdown menu to use as a starting point, and click Copy to create a new custom keymap. You can modify the keymap name and shortcuts.
- Reset button: Select a keymap from the dropdown menu and click Reset to revert it to its original configuration.
- Search box: Type here to search for a keyboard shortcut by the action name.
- Search by Shortcut: Click Find Actions by Shortcut and type a shortcut to search for actions by shortcut.