public class MainActivity extends AppCompatActivity {
NotificationManager notificationManager;
private static String CHANNEL1_ID = "Channel1_ID";
private static String CHANNEL1_NAME = "Channel1_NAME";
private static String CHANNEL2_ID = "Channel2_ID";
private static String CHANNEL2_NAME = "Channel2_NAME";
private final int RequestCode = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowNotification1();
}
});
Button button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowNotification2();
}
});
}
public void ShowNotification1() {
notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (notificationManager.getNotificationChannel(CHANNEL1_ID) == null) {
notificationManager.createNotificationChannel(new NotificationChannel(CHANNEL1_ID, CHANNEL1_NAME, NotificationManager.IMPORTANCE_DEFAULT));
builder = new NotificationCompat.Builder(this, CHANNEL1_ID);
} else {
builder = new NotificationCompat.Builder(this, CHANNEL1_ID);
}
} else {
builder = new NotificationCompat.Builder(this);
// This package is part of the Android support library which is no longer maintained.
}
builder.setContentTitle("Simple notification");
builder.setContentText("Message for simple notification");
builder.setSmallIcon(android.R.drawable.ic_menu_view);
Notification notification = builder.build();
notificationManager.notify(1, notification);
// Post a notification to be shown in the status bar. If a notification with the same id has already been posted by your application and has not yet
// been canceled, it will be replaced by the updated information.
// - Parameters
// id: An identifier for this notification unique within your application.
// notification: A Notification object describing what to show the user. Must not be null.
}
public void ShowNotification2() {
notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (notificationManager.getNotificationChannel(CHANNEL2_ID) == null) {
notificationManager.createNotificationChannel(new NotificationChannel(CHANNEL2_ID, CHANNEL2_NAME, NotificationManager.IMPORTANCE_DEFAULT));
builder = new NotificationCompat.Builder(this, CHANNEL2_ID);
} else {
builder = new NotificationCompat.Builder(this, CHANNEL2_ID);
}
} else {
builder = new NotificationCompat.Builder(this);
}
Uri uri = Uri.parse("https://s-engineer.tistory.com");
Intent intent = new Intent(ACTION_VIEW, uri);
// ACTION_VIEW: Display the data to the user. This is the most common action performed on data -- it is the generic action you can use on a piece of
// data to get the most reasonable thing to occur. For example, when used on a contacts entry it will view the entry; when used on a mailto: URI it
// will bring up a compose window filled with the information supplied by the URI; when used with a tel: URI it will invoke the dialer.
PendingIntent pendingIntent = PendingIntent.getActivity(this, RequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentTitle("Notification with PendingIntent");
builder.setContentText("Message for notification with PendingIntent");
builder.setSmallIcon(android.R.drawable.ic_menu_view);
builder.setAutoCancel(true);
// Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel.
builder.setContentIntent(pendingIntent);
// Supply a PendingIntent to send when the notification is clicked.
Notification notification = builder.build();
notificationManager.notify(2, notification);
}
}