private static final int NOTIFICATION_ID = 0;
Это идентифицирует ваше уведомление. Если вы отправите несколько уведомлений с одним и тем же идентификатором, старое уведомление будет заменено более новым. Итак, если вы хотите отобразить несколько уведомлений одновременно, вам нужно несколько идентификаторов.
private static final String NOTIFICATION_ID_STRING = "0";
Это идентификатор канала. Он сообщает, какой канал следует использовать для отправки этого уведомления. Вы можете назначить любой String
. Вам просто нужно убедиться, что вы используете тот же String
для определенного канала. А если вы хотите создать больше каналов, вам нужно использовать для них другой String
.
О канале
В последних версиях Android (Android Oreo и далее), вы можете иметь разные каналы для отправки уведомлений. Таким образом, вы позволяете своему пользователю настраивать, какое уведомление он хочет получать.
Например, у вас есть приложение для покупок. Тогда у вас может быть несколько каналов, таких как:
- Мои заказы (для уведомления о заказах)
- Акции (для уведомлений о рекламных акциях ... этот, вероятно, захочет пользовательотключить).
- Разное (для любого другого типа уведомлений).
Перед отправкой уведомления по этому каналу, вы должны создать его:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "Orders Notification";
String description = "Notifications about my order";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(NOTIFICATION_ID_STRING, name, importance);
channel.setDescription(description);
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
Затем вы можете отправлять уведомления через:
NotificationCompat.Builder notifyBuilder
= new NotificationCompat.Builder(this, name.toString())
Вы можете проверить все каналы, которые есть в приложении, через:
Settings -> Apps -> App you want to check -> Notifications
Некоторые приложения имеют только один канал. Другие приложения могут иметь более одного канала.
Возвращаясь к вашему вопросу
Итак, возвращаясь к вашему примеру, NOTIFICATION_ID_STRING
может быть любой строкой. Вам просто нужно использовать "0"
каждый раз, когда вы хотите отправить сообщение по определенному каналу. И, если вы создаете новый канал, используйте новую строку "channel1"
, например.
Однако вы должны создать канал перед отправкой на него уведомления:
// This ID can be the value you want.
private static final int NOTIFICATION_ID = 0;
// This ID can be the value you want.
private static final String NOTIFICATION_ID_STRING = "My Notifications";
public void sendNotification(View view) {
mNotifyManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//Create the channel. Android will automatically check if the channel already exists
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(NOTIFICATION_ID_STRING, "My Channel Name", NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription("My notification channel description");
mNotifyManager.createNotificationChannel(channel);
}
NotificationCompat.Builder notifyBuilder
= new NotificationCompat.Builder(this, NOTIFICATION_ID_STRING)
.setContentTitle("You've been notified!")
.setContentText("This is your notification text.")
.setSmallIcon(R.drawable.ic_android);
Notification myNotification = notifyBuilder.build();
mNotifyManager.notify(NOTIFICATION_ID, myNotification);
}
Выможете найти больше информации о них ЗДЕСЬ