Android 8.0 (API düzeyi 26) sürümünden itibaren, tüm bildirimlerin yardımcı olur. Her kanal için uygun görsel ve işitsel davranışı ayarlayabilirsiniz: ilgili kanaldaki tüm bildirimlere uygulanır. Kullanıcılar bu ayarları değiştirebilir ve uygulamanızdaki hangi bildirim kanallarının rahatsız edici olabileceğine veya görünür.
Kanallara genel bakış ve diğer bildirimler için aşağıdaki videoyu izleyin daha fazla bilgi edineceksiniz.
Bildirim kanallarına ilişkin kullanıcı ayarları, ayarlarını kullanın.
Bildirim kanalı oluşturduktan sonra bildirimi değiştiremezsiniz ve bunları kontrol etmenizi sağlar. Bu noktada kullanıcı tam denetime sahip olur. Ancak, Bir kanalın adını ve açıklamasını değiştirebilirsiniz.
Göndermeniz gereken her bildirim türü için bir kanal oluşturun. Ayrıca transkriptinizi kullanıcıların yaptığı seçimleri yansıtmak için bildirim kanalları oluşturmasını sağlar. Örneğin, tarafından oluşturulan her ileti dizisi grubu için ayrı bildirim kanalları bir mesajlaşma uygulamasıdır.
Android 8.0 (API düzeyi 26) veya sonraki sürümleri hedeflediğinizde
daha fazla bildirim kanalı. targetSdkVersion
değeriniz 25 veya daha düşük bir değere ayarlanırsa
Uygulamanız Android 8.0 (API düzeyi 26) veya sonraki bir sürümde çalıştırıldığında aynı şekilde davranır
Android 7.1 (API düzeyi 25) veya önceki sürümleri çalıştıran cihazlarda olduğu gibi.
Bildirim kanalı oluşturma
Bildirim kanalı oluşturmak için şu adımları uygulayın:
Bir
NotificationChannel
nesne benzersiz bir kanal kimliği, kullanıcının görebildiği ad ve önem düzeyine sahip olmalıdır.İsteğe bağlı olarak, kullanıcının sistem ayarlarında göreceği açıklamayı belirtin. şununla:
setDescription()
.Bildirim kanalını
createNotificationChannel()
.
Aşağıdaki örnekte bir bildirim kanalının nasıl oluşturulacağı ve kaydedileceği gösterilmektedir:
Kotlin
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // Create the NotificationChannel. val name = getString(R.string.channel_name) val descriptionText = getString(R.string.channel_description) val importance = NotificationManager.IMPORTANCE_DEFAULT val mChannel = NotificationChannel(CHANNEL_ID, name, importance) mChannel.description = descriptionText // Register the channel with the system. You can't change the importance // or other notification behaviors after this. val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(mChannel) }
Java
private void createNotificationChannel() { // Create the NotificationChannel, but only on API 26+ because // the NotificationChannel class is not in the Support Library. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { CharSequence name = getString(R.string.channel_name); String description = getString(R.string.channel_description); int importance = NotificationManager.IMPORTANCE_DEFAULT; NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance); channel.setDescription(description); // Register the channel with the system. You can't change the importance // or other notification behaviors after this. NotificationManager notificationManager = getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(channel); } }
Mevcut bir bildirim kanalını orijinal değerleriyle yeniden oluşturmak herhangi bir işlem yapmaz. işlemi olduğundan bir uygulamayı başlatırken bu kodu çağırmak güvenlidir.
Varsayılan olarak, belirli bir kanalda yayınlanan tüm bildirimler
.
NotificationManagerCompat
sınıf,
IMPORTANCE_DEFAULT
veya
IMPORTANCE_HIGH
.
Daha fazla bilgi için sonraki bölüme bakın
önem seviyelerini kullanın.
Kanalınızın varsayılan bildirim davranışlarını daha da özelleştirmek isterseniz
telefon görüşmelerinde
enableLights()
setLightColor()
,
ve
setVibrationPattern()
NotificationChannel
'da. Kanalı oluşturduktan sonra
Bu ayarlar değiştirilemez ve kullanıcı bu ayarların
etkin olduğundan emin olun.
Ayrıca, aşağıdakileri yaparak tek bir işlemde birden fazla bildirim kanalı oluşturabilirsiniz:
arama
createNotificationChannels()
.
Önem düzeyini ayarlama
Kanal önem derecesi, yayınlanan tüm bildirimlerin kesinti düzeyini etkiler
kanalla ilgilidir. Aşağıdakilerden birini kullanarak NotificationChannel
oluşturucuda bunu belirtin:
beş önem düzeyi arasından
IMPORTANCE_NONE(0)
-
IMPORTANCE_HIGH(4)
.
Android 7.1 (API düzeyi 25) veya önceki sürümleri çalıştıran cihazları desteklemek için ayrıca
telefon etmek
setPriority()
her bildirim için
NotificationCompat
sınıfını kullanır.
Önem (NotificationManager.IMPORTANCE_*
) ve öncelik
(NotificationCompat.PRIORITY_*
) sabit değerleri, kullanıcının görebildiği önemle eşlenir
seçenekleridir.
Kullanıcının görebildiği önem düzeyi | Önem (Android 8.0 ve sonraki sürümler) | Öncelik (Android 7.1 ve önceki sürümler) |
---|---|---|
Acil Ses çıkarır ve uyarı bildirimi olarak görünür. |
IMPORTANCE_HIGH |
PRIORITY_HIGH veya PRIORITY_MAX |
Yüksek Ses çıkar. |
IMPORTANCE_DEFAULT |
PRIORITY_DEFAULT |
Orta Ses çıkarmaz. |
IMPORTANCE_LOW |
PRIORITY_LOW |
Düşük Ses çıkarmaz ve durum çubuğunda görünmez. |
IMPORTANCE_MIN |
PRIORITY_MIN |
Yok Ses çıkarmaz ve durum çubuğunda veya gölgede görünmez. |
IMPORTANCE_NONE |
N/A |
Önem derecesi ne olursa olsun tüm bildirimler rahatsız edici olmayan bir sistemde görünür Bildirim çekmecesinde ve başlatıcı simgesinde bir rozet varsa, ancak siz bildirim rozetinin görünümünü değiştirebilir.
Kanalı
NotificationManager
, siz
Önem düzeyini değiştiremezsiniz. Ancak, kullanıcı
istediğiniz zaman değiştirebilirsiniz.
Uygun bir öncelik düzeyi seçme hakkında bilgi edinmek için "Öncelik" seviyeler" Bildirimler tasarım kılavuzu.
Bildirim kanalı ayarlarını okuma
Kullanıcılar, davranışlar da dahil olmak üzere bildirim kanallarının ayarlarını değiştirebilir nasıl uyarlayacağınızı öğrenin. Bir kullanıcının bu ayarları bildirim kanallarınız için geçerliyse şu adımları uygulayın:
Çağrı yaparak
NotificationChannel
nesnesini alıngetNotificationChannel()
veyagetNotificationChannels()
.Aşağıdakiler gibi belirli kanal ayarlarını sorgulayın:
getVibrationPattern()
getSound()
vegetImportance()
.
İstenen davranışı engellediğini düşündüğünüz bir kanal ayarı tespit ederseniz kullanıcının uygulamanızla ilgili değişikliği değiştirmesini önerebilir ve sonraki bölümde gösterildiği gibi kanal ayarlarını açın.
Bildirim kanalı ayarlarını aç
Bildirim kanalı oluşturduktan sonra bildirimi değiştiremezsiniz görsel ve işitsel davranışları programatik olarak takip edebilirsiniz. Yalnızca kullanıcı kanal davranışlarını sistem ayarlarından değiştirebilirsiniz. Kullanıcılarınıza bu bildirim ayarlarına kolayca erişebilirsiniz, uygulamanıza yeni bir öğe ayarlar kullanıcı arayüzünü açın.
Bildirim kanallarının sistem ayarlarını
Intent
ACTION_CHANNEL_NOTIFICATION_SETTINGS
eyleme dökülebilir.
Örneğin, aşağıdaki örnek kod bir kullanıcıyı bir bildirim kanalının ayarları:
Kotlin
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply { putExtra(Settings.EXTRA_APP_PACKAGE, packageName) putExtra(Settings.EXTRA_CHANNEL_ID, myNotificationChannel.getId()) } startActivity(intent)
Java
Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS); intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName()); intent.putExtra(Settings.EXTRA_CHANNEL_ID, myNotificationChannel.getId()); startActivity(intent);
Amaç, uygulamanızın paket adını belirten iki ekstra öğe gerektirdiğine dikkat edin. (uygulama kimliği olarak da bilinir) ve düzenlenecek kanalı seçin.
Bildirim kanalını silme
Şu numarayı arayarak bildirim kanallarını silebilirsiniz:
deleteNotificationChannel()
.
Aşağıdaki örnek kod bu işlemin nasıl tamamlanacağını gösterir:
Kotlin
// The id of the channel. val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val id: String = "my_channel_01" notificationManager.deleteNotificationChannel(id)
Java
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // The id of the channel. String id = "my_channel_01"; notificationManager.deleteNotificationChannel(id);
Bildirim kanalı grubu oluşturma
Ayarlar kullanıcı arayüzünde kanallarınızın görünümünü daha ayrıntılı düzenlemek isterseniz kanal grupları oluşturabilirsiniz. Bu, uygulamanızın birden fazla kullanıcı hesabı, örneğin iş profilleri oluşturmanıza olanak tanır, çünkü bildirim kanalı grubu oluşturabilirsiniz. Bu sayede, kullanıcılar ve aynı ada sahip birden fazla bildirim kanalını kontrol edebilirsiniz.
Örneğin, bir sosyal ağ uygulaması kişisel ve iş amaçlı bilgileri destekleyebilir hesaplar. Bu senaryoda, her hesap için birden fazla bildirim gerekebilir. aşağıdaki gibi aynı işlevlere ve adlara sahip kanallar:
İki kanallı kişisel bir hesap:
Yeni yorumlar
Yayın önerileri
İki kanallı bir işletme hesabı:
Yeni yorumlar
Yayın önerileri
Bildirim kanallarını her hesap için ayrı gruplar halinde düzenlemek kullanıcıların ve bunları birbirinden ayırt etmektir.
Her bildirim kanalı grubu için bir kimlik gerekir. Bu kimlik, paketinin yanı sıra kullanıcının görebildiği bir ad kullanın. Aşağıdaki snippet, bu anahtar kelimelerin bildirim kanal grubu oluşturun.
Kotlin
// The id of the group. val groupId = "my_group_01" // The user-visible name of the group. val groupName = getString(R.string.group_name) val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannelGroup(NotificationChannelGroup(groupId, groupName))
Java
// The id of the group. String groupId = "my_group_01"; // The user-visible name of the group. CharSequence groupName = getString(R.string.group_name); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.createNotificationChannelGroup(new NotificationChannelGroup(groupId, groupName));
Yeni bir grup oluşturduktan sonra şu numarayı arayabilirsiniz:
setGroup()
kullanarak yeni bir NotificationChannel
nesnesini ilişkilendirebilirsiniz.
Kanalı bildirim yöneticisine gönderdikten sonra bildirim kanalı ve grup arasındaki ilişkilendirme.