Android'de yerel bildirimler

Bu bölümde, Xamarin.Android'de yerel bildirimlerin nasıl uygulanacakları gösterilmektedir. Bir Android bildiriminin çeşitli kullanıcı arabirimi öğelerini açıklar ve bildirim oluşturma ve görüntüleme ile ilgili API'leri açıklar.

Yerel bildirimlere genel bakış

Android, kullanıcıya bildirim simgeleri ve bildirim bilgilerini görüntülemek için sistem tarafından denetlenen iki alan sağlar. Bir bildirim ilk yayımlandığında, aşağıdaki ekran görüntüsünde gösterildiği gibi bildirim alanında simgesi görüntülenir:

Bir cihazdaki örnek bildirim alanı

Bildirimle ilgili ayrıntıları almak için kullanıcı bildirim çekmecesini açabilir (bildirim içeriğini göstermek için her bildirim simgesini genişletir) ve bildirimlerle ilişkili tüm eylemleri gerçekleştirebilir. Aşağıdaki ekran görüntüsünde, yukarıda görüntülenen bildirim alanına karşılık gelen bir bildirim çekmecesi gösterilmektedir:

Üç bildirimin görüntülendiği örnek bildirim çekmecesi

Android bildirimleri iki tür düzen kullanır:

  • Temel düzen – kompakt, sabit bir sunu biçimi.

  • Genişletilmiş düzen : Daha fazla bilgi ortaya çıkarmak için daha büyük bir boyuta genişletilebilen bir sunu biçimi.

Bu düzen türlerinin her biri (ve bunların nasıl oluşturulacağı) aşağıdaki bölümlerde açıklanmıştır.

Not

Bu kılavuz, Android destek kitaplığındaki NotificationCompat API'lerine odaklanır. Bu API'ler, Android 4.0'a (API düzeyi 14) en fazla geriye dönük uyumluluk sağlar.

Temel düzen

Tüm Android bildirimleri, en azından aşağıdaki öğeleri içeren temel düzen biçiminde oluşturulur:

  1. Kaynak uygulamayı veya uygulama farklı bildirim türlerini destekliyorsa bildirim türünü temsil eden bir bildirim simgesi.

  2. Bildirim başlığı veya bildirim kişisel bir iletiyse gönderenin adı.

  3. Bildirim iletisi.

  4. Zaman damgası.

Bu öğeler aşağıdaki diyagramda gösterildiği gibi görüntülenir:

Bildirim öğelerinin konumu

Temel düzenlerin yüksekliği 64 yoğunluklu bağımsız piksel (dp) ile sınırlıdır. Android bu temel bildirim stilini varsayılan olarak oluşturur.

İsteğe bağlı olarak, bildirimler uygulamayı veya gönderenin fotoğrafını temsil eden büyük bir simge görüntüleyebilir. Android 5.0 ve sonraki sürümlerde bir bildirimde büyük bir simge kullanıldığında, küçük bildirim simgesi büyük simgenin üzerinde rozet olarak görüntülenir:

Basit bildirim fotoğrafı

Android 5.0 sürümünden itibaren, bildirimler kilit ekranında da görünebilir:

Örnek kilit ekranı bildirimi

Kullanıcı kilit ekranı bildirimine iki kez dokunarak cihazın kilidini açabilir ve bu bildirimi oluşturan uygulamaya atlayabilir veya bildirimi kapatmak için çekin. Uygulamalar, kilit ekranında nelerin gösterileceğini denetlemek için bildirimin görünürlük düzeyini ayarlayabilir ve kullanıcılar kilit ekranı bildirimlerinde hassas içeriğin gösterilmesine izin verilip verilmeyeceğini seçebilir.

Android 5.0, Heads-up adlı yüksek öncelikli bir bildirim sunusu biçimi kullanıma sunulmuştur. Uyarı bildirimleri birkaç saniye boyunca ekranın üst kısmından aşağı kaydırır ve ardından bildirim alanına geri döner:

Örnek uyarı bildirimi

Uyarı bildirimleri, sistem kullanıcı arabiriminin şu anda çalışan etkinliğin durumunu kesintiye uğratmadan önemli bilgileri kullanıcının önüne yerleştirmesini mümkün hale getirir.

Android, bildirimlerin akıllı bir şekilde sıralanıp görüntülenebilmesi için bildirim meta verileri desteği içerir. Bildirim meta verileri, bildirimlerin kilit ekranında ve Uyarı modunda nasıl sunulduğunu da denetler. Uygulamalar aşağıdaki bildirim meta verisi türlerini ayarlayabilir:

  • Öncelik : Öncelik düzeyi, bildirimlerin nasıl ve ne zaman sunulup sunulmadığını belirler. Örneğin, Android 5.0'da, yüksek öncelikli bildirimler Uyarı bildirimleri olarak görüntülenir.

  • Görünürlük : Bildirim kilit ekranında göründüğünde ne kadar bildirim içeriğinin görüntüleneceğini belirtir.

  • Kategori – Cihazı Rahatsız Etmeyin modunda olduğu durumlar gibi çeşitli durumlarda bildirimin nasıl işleneceğini sisteme bildirir.

Not

Görünürlük ve Kategori , Android 5.0'da kullanıma sunulmuştur ve Android'in önceki sürümlerinde kullanılamaz. Android 8.0'da başlayan bildirim kanalları, bildirimlerin kullanıcıya nasıl sunulduğunu denetlemek için kullanılır.

Genişletilmiş düzenler

Android 4.1'den başlayarak, bildirimler kullanıcının daha fazla içerik görüntülemek için bildirimin yüksekliğini genişletmesine olanak sağlayan genişletilmiş düzen stilleriyle yapılandırılabilir. Örneğin, aşağıdaki örnekte sözleşmeli modda genişletilmiş düzen bildirimi gösterilmektedir:

Sözleşmeli bildirim

Bu bildirim genişletildiğinde iletinin tamamı gösterilir:

Genişletilmiş bildirim

Android, tek olaylı bildirimler için üç genişletilmiş düzen stilini destekler:

  • Büyük Metin : Anlaşmalı modda, iletinin ilk satırının bir alıntısını ve ardından iki nokta görüntüler. Genişletilmiş modda, iletinin tamamını görüntüler (yukarıdaki örnekte görüldüğü gibi).

  • Gelen Kutusu – Sözleşmeli modda, yeni ileti sayısını görüntüler. Genişletilmiş modda, ilk e-posta iletisini veya gelen kutusundaki iletilerin listesini görüntüler.

  • Görüntü – Anlaşmalı modda yalnızca ileti metnini görüntüler. Genişletilmiş modda, metni ve görüntüyü görüntüler.

Temel Bildirim'in ötesinde (bu makalenin devamında) Büyük Metin, Gelen Kutusu ve Görüntü bildirimlerinin nasıl oluşturulacağı açıklanmaktadır.

Bildirim kanalları

Android 8.0(Oreo) sürümünden başlayarak, görüntülemek istediğiniz her bildirim türü için kullanıcı tarafından özelleştirilebilir bir kanal oluşturmak için bildirim kanalları özelliğini kullanabilirsiniz. Bildirim kanalları, bir kanala gönderilen tüm bildirimlerin aynı davranışı sergilemesi için bildirimleri gruplandırmanızı mümkün hale getirir. Örneğin, anında ilgilenilmesi gereken bildirimlere yönelik bir bildirim kanalınız ve bilgilendirici iletiler için kullanılan ayrı bir "daha sessiz" kanalınız olabilir.

Android Oreo ile yüklenen YouTube uygulaması iki bildirim kategorisi listeler: İndirme bildirimleri ve Genel bildirimler:

Android Oreo'da YouTube için bildirim ekranları

Bu kategorilerin her biri bir bildirim kanalına karşılık gelir. YouTube uygulaması bir İndirme Bildirimleri kanalı ve Genel Bildirimler kanalı uygular. Kullanıcı, uygulamanın indirme bildirimleri kanalının ayarlar ekranını görüntüleyen Bildirimleri indir'e dokunabilir:

YouTube uygulaması için bildirimleri indirme ekranı

Bu ekranda, kullanıcı aşağıdakileri yaparak İndirme bildirimleri kanalının davranışını değiştirebilir:

  • Önem düzeyini, ses ve görsel kesinti düzeyini yapılandıran Acil, Yüksek, Orta veya Düşük olarak ayarlayın.

  • Bildirim noktasını açın veya kapatın.

  • Yanıp sönen ışığı açın veya kapatın.

  • Kilit ekranında bildirimleri gösterin veya gizleyin.

  • Rahatsız Etmeyin ayarını geçersiz kılın.

Genel Bildirimler kanalı benzer ayarlara sahiptir:

YouTube uygulaması için genel bildirimler ekranı

Bildirim kanallarınızın kullanıcıyla nasıl etkileşimde bulunduğunu tam olarak denetlemediğinize dikkat edin. Kullanıcı, yukarıdaki ekran görüntülerinde görüldüğü gibi cihazdaki herhangi bir bildirim kanalının ayarlarını değiştirebilir. Ancak, varsayılan değerleri yapılandırabilirsiniz (aşağıda açıklandığı gibi). Bu örneklerde gösterildiği gibi, yeni bildirim kanalları özelliği, kullanıcılara farklı bildirim türleri üzerinde ayrıntılı denetim vermenizi mümkün kılar.

Bildirim oluşturma

Android'de bildirim oluşturmak için Xamarin.Android.Support.v4 NuGet paketinden NotificationCompat.Builder sınıfını kullanırsınız. Bu sınıf, Android'in eski sürümlerinde bildirim oluşturmayı ve yayımlamayı mümkün kılar. NotificationCompat.Builder konusu da ele alınmıştı.

NotificationCompat.Builder bir bildirimde çeşitli seçenekleri ayarlamak için aşağıdakiler gibi yöntemler sağlar:

  • Başlık, ileti metni ve bildirim simgesi de dahil olmak üzere içerik.

  • Büyük Metin, Gelen Kutusu veya Resim stili gibi bildirimin stili.

  • Bildirimin önceliği: minimum, düşük, varsayılan, yüksek veya maksimum. Android 8.0 ve üzeri sürümlerde öncelik bir bildirim kanalı üzerinden ayarlanır.

  • Kilit ekranında bildirimin görünürlüğü: genel, özel veya gizli.

  • Android'in bildirimi sınıflandırması ve filtrelemesine yardımcı olan kategori meta verileri.

  • Bildirime dokunulduğunda bir etkinliğin başlatılacağını gösteren isteğe bağlı bir amaç.

  • Bildirimin yayımlanacağı bildirim kanalının kimliği (Android 8.0 ve üzeri).

Oluşturucuda bu seçenekleri ayarladıktan sonra, ayarları içeren bir bildirim nesnesi oluşturursunuz. Bildirimi yayımlamak için bu bildirim nesnesini Notification Manager'a geçirirsiniz. Android, bildirimleri yayımlamaktan ve kullanıcıya görüntülemekle sorumlu notificationManager sınıfını sağlar. Bu sınıfa başvuru, etkinlik veya hizmet gibi herhangi bir bağlamdan alınabilir.

Bildirim kanalı oluşturma

Android 8.0 üzerinde çalışan uygulamaların bildirimleri için bir bildirim kanalı oluşturması gerekir. Bildirim kanalı aşağıdaki üç bilgi parçasını gerektirir:

  • Kanalı tanımlayan pakete özgü bir kimlik dizesi.
  • Kullanıcıya görüntülenecek kanalın adı. Ad bir ile 40 karakter arasında olmalıdır.
  • Kanalın önemi.

Uygulamaların çalıştırdıkları Android sürümünü denetlemesi gerekir. Android 8.0'dan eski sürümleri çalıştıran cihazlar bir bildirim kanalı oluşturmamalıdır. Aşağıdaki yöntem, bir etkinlikte bildirim kanalı oluşturmanın bir örneğidir:

void CreateNotificationChannel()
{
    if (Build.VERSION.SdkInt < BuildVersionCodes.O)
    {
        // Notification channels are new in API 26 (and not a part of the
        // support library). There is no need to create a notification
        // channel on older versions of Android.
        return;
    }

    var channelName = Resources.GetString(Resource.String.channel_name);
    var channelDescription = GetString(Resource.String.channel_description);
    var channel = new NotificationChannel(CHANNEL_ID, channelName, NotificationImportance.Default)
                  {
                      Description = channelDescription
                  };

    var notificationManager = (NotificationManager) GetSystemService(NotificationService);
    notificationManager.CreateNotificationChannel(channel);
}

Etkinlik her oluşturulduğunda bildirim kanalı oluşturulmalıdır. CreateNotificationChannel yöntemi için, bir etkinliğin OnCreate yönteminde çağrılmalıdır.

Bildirim oluşturma ve yayımlama

Android'de bildirim oluşturmak için şu adımları izleyin:

  1. Bir NotificationCompat.Builder nesne örneği oluşturma.

  2. Bildirim seçeneklerini ayarlamak için nesne üzerinde NotificationCompat.Builder çeşitli yöntemleri çağırın.

  3. Bildirim nesnesinin örneğini oluşturmak için nesnesinin NotificationCompat.Builder Build yöntemini çağırın.

  4. Bildirimi yayımlamak için bildirim yöneticisinin Notify yöntemini çağırın.

Her bildirim için en azından aşağıdaki bilgileri sağlamanız gerekir:

  • Küçük bir simge (boyutu 24x24 dp)

  • Kısa bir başlık

  • Bildirim metni

Aşağıdaki kod örneğinde temel bir bildirim oluşturmak için nasıl kullanılacağı NotificationCompat.Builder gösterilmektedir. Yöntemlerin NotificationCompat.Builder yöntem zincirini desteklediğine, yani her yöntemin oluşturucu nesnesini döndürdüğüne dikkat edin; böylece sonraki yöntem çağrısını çağırmak için son yöntem çağrısının sonucunu kullanabilirsiniz:

// Instantiate the builder and set notification elements:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
    .SetContentTitle ("Sample Notification")
    .SetContentText ("Hello World! This is my first notification!")
    .SetSmallIcon (Resource.Drawable.ic_notification);

// Build the notification:
Notification notification = builder.Build();

// Get the notification manager:
NotificationManager notificationManager =
    GetSystemService (Context.NotificationService) as NotificationManager;

// Publish the notification:
const int notificationId = 0;
notificationManager.Notify (notificationId, notification);

Bu örnekte, çağrılan builder yeni NotificationCompat.Builder bir nesnenin örneği, kullanılacak bildirim kanalının kimliğiyle birlikte oluşturulur. Bildirimin başlığı ve metni ayarlanır ve bildirim simgesi Resources/drawable/ic_notification.png'dan yüklenir. Bildirim oluşturucusunun Build yöntemine yapılan çağrı, bu ayarlarla bir bildirim nesnesi oluşturur. Sonraki adım bildirim yöneticisinin Notify yöntemini çağırmaktır. Bildirim yöneticisini bulmak için, yukarıda gösterildiği gibi öğesini çağırırsınız GetSystemService.

Notify yöntemi iki parametre kabul eder: bildirim tanımlayıcısı ve bildirim nesnesi. Bildirim tanımlayıcısı, uygulamanıza bildirimi tanımlayan benzersiz bir tamsayıdır. Bu örnekte bildirim tanımlayıcısı sıfır (0) olarak ayarlanmıştır; ancak bir üretim uygulamasında her bildirime benzersiz bir tanımlayıcı vermek istersiniz. Çağrısında önceki tanımlayıcı değerini yeniden kullanmak Notify , son bildirimin üzerine yazılmasını sağlar.

Bu kod bir Android 5.0 cihazında çalıştırıldığında aşağıdaki örneğe benzer bir bildirim oluşturur:

Örnek kod için bildirim sonucu

Bildirim simgesi bildirimin sol tarafında görüntülenir; daire içine alınmış bir "i" resminin arkasında gri bir dairesel arka plan çizebilmesi için bir alfa kanalı vardır. Alfa kanalı olmayan bir simge de sağlayabilirsiniz. Bir fotoğraf resmini simge olarak görüntülemek için bu konunun devamında yer alan Büyük Simge Biçimi bölümüne bakın.

Zaman damgası otomatik olarak ayarlanır, ancak bildirim oluşturucusunun SetWhen yöntemini çağırarak bu ayarı geçersiz kılabilirsiniz. Örneğin, aşağıdaki kod örneği zaman damgasını geçerli saate ayarlar:

builder.SetWhen (Java.Lang.JavaSystem.CurrentTimeMillis());

Ses ve titreşimi etkinleştirme

Bildiriminizin de ses çalmasını istiyorsanız, bildirim oluşturucusunun SetDefaults yöntemini çağırabilir ve bayrağını NotificationDefaults.Sound geçirebilirsiniz:

// Instantiate the notification builder and enable sound:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
    .SetContentTitle ("Sample Notification")
    .SetContentText ("Hello World! This is my first notification!")
    .SetDefaults (NotificationDefaults.Sound)
    .SetSmallIcon (Resource.Drawable.ic_notification);

Bu çağrısı, SetDefaults bildirim yayımlandığında cihazın bir ses çalmasına neden olur. Cihazın bir ses çalmak yerine titreşime geçmesini istiyorsanız, NotificationDefaults.Vibrate SetDefaults. cihazın bir ses çalmasını ve cihazı titreşime geçirmesini istiyorsanız, her iki bayrağı da öğesine SetDefaultsgeçirebilirsiniz:

builder.SetDefaults (NotificationDefaults.Sound | NotificationDefaults.Vibrate);

Çalınacak sesi belirtmeden sesi etkinleştirirseniz, Android varsayılan sistem bildirim sesini kullanır. Ancak, bildirim oluşturucusunun SetSound yöntemini çağırarak çalınacak sesi değiştirebilirsiniz. Örneğin, alarm sesini bildiriminizle (varsayılan bildirim sesi yerine) çalmak için Zil SesiManager'dan alarm sesinin URI'sini SetSoundalabilir ve öğesine geçirebilirsiniz:

builder.SetSound (RingtoneManager.GetDefaultUri(RingtoneType.Alarm));

Alternatif olarak, bildiriminiz için sistem varsayılan zil sesi sesini kullanabilirsiniz:

builder.SetSound (RingtoneManager.GetDefaultUri(RingtoneType.Ringtone));

Bir bildirim nesnesi oluşturduktan sonra bildirim nesnesinde bildirim özelliklerini ayarlamak mümkündür (bunları yöntemler aracılığıyla NotificationCompat.Builder önceden yapılandırmak yerine). Örneğin, bildirimde SetDefaults titreşimi etkinleştirmek için yöntemini çağırmak yerine bildirimin Defaults özelliğinin bit bayrağını doğrudan değiştirebilirsiniz:

// Build the notification:
Notification notification = builder.Build();

// Turn on vibrate:
notification.Defaults |= NotificationDefaults.Vibrate;

Bu örnek, bildirim yayımlandığında cihazın titreşmesine neden olur.

Bildirimi güncelleştirme

Bir bildirimin içeriğini yayımlandıktan sonra güncelleştirmek istiyorsanız, yeni bir bildirim nesnesi oluşturmak için mevcut NotificationCompat.Builder nesneyi yeniden kullanabilir ve bu bildirimi son bildirimin tanımlayıcısıyla yayımlayabilirsiniz. Örneğin:

// Update the existing notification builder content:
builder.SetContentTitle ("Updated Notification");
builder.SetContentText ("Changed to this message.");

// Build a notification object with updated content:
notification = builder.Build();

// Publish the new notification with the existing ID:
notificationManager.Notify (notificationId, notification);

Bu örnekte, var olan NotificationCompat.Builder nesne farklı bir başlık ve iletiye sahip yeni bir bildirim nesnesi oluşturmak için kullanılır. Yeni bildirim nesnesi, önceki bildirimin tanımlayıcısı kullanılarak yayımlanır ve bu, daha önce yayımlanan bildirimin içeriğini güncelleştirir:

Güncelleştirilmiş bildirim

Önceki bildirimin gövdesi yeniden kullanılır; bildirim çekmecesinde görüntülenirken yalnızca bildirimin başlığı ve metni değişir. Başlık metni "Örnek Bildirim" yerine "Güncelleştirilmiş Bildirim" olarak, ileti metni ise "Merhaba Dünya! Bu, "Bu iletiye değiştirildi"ye ilk bildirimim.

Üç şeyden biri gerçekleşene kadar bildirim görünür durumda kalır:

  • Kullanıcı bildirimi kapatıyor (veya Tümünü Temizle'ye dokunun).

  • Uygulama, bildirim yayımlandığında atanan benzersiz bildirim kimliğini geçirerek öğesine bir çağrı NotificationManager.Cancelyapar.

  • Uygulama çağrısında bulunur NotificationManager.CancelAll.

Android bildirimlerini güncelleştirme hakkında daha fazla bilgi için bkz . Bildirimi Değiştirme.

Bildirimden etkinlik başlatma

Android'de, bir bildirimin bir eylemle (kullanıcı bildirime dokunduğunda başlatılan bir etkinlik) ilişkilendirilmesi yaygındır. Bu etkinlik başka bir uygulamada, hatta başka bir görevde bulunabilir. Bildirime eylem eklemek için PendingIntent nesnesi oluşturur ve bildirimiyle ilişkilendirirsinizPendingIntent. A PendingIntent , alıcı uygulamasının gönderen uygulamanın izinleriyle önceden tanımlanmış bir kod parçası çalıştırmasına olanak tanıyan özel bir amaç türüdür. Kullanıcı bildirime dokunduğunda, Android tarafından PendingIntentbelirtilen etkinliği başlatır.

Aşağıdaki kod parçacığında, kaynak uygulamanın MainActivityetkinliğini başlatacak bir PendingIntent ile nasıl bildirim oluşturulacağı gösterilmektedir:

// Set up an intent so that tapping the notifications returns to this app:
Intent intent = new Intent (this, typeof(MainActivity));

// Create a PendingIntent; we're only using one PendingIntent (ID = 0):
const int pendingIntentId = 0;
PendingIntent pendingIntent =
    PendingIntent.GetActivity (this, pendingIntentId, intent, PendingIntentFlags.OneShot);

// Instantiate the builder and set notification elements, including pending intent:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
    .SetContentIntent (pendingIntent)
    .SetContentTitle ("Sample Notification")
    .SetContentText ("Hello World! This is my first action notification!")
    .SetSmallIcon (Resource.Drawable.ic_notification);

// Build the notification:
Notification notification = builder.Build();

// Get the notification manager:
NotificationManager notificationManager =
    GetSystemService (Context.NotificationService) as NotificationManager;

// Publish the notification:
const int notificationId = 0;
notificationManager.Notify (notificationId, notification);

Bu kod, bildirim nesnesine eklenmesi dışında PendingIntent önceki bölümdeki bildirim koduna çok benzer. Bu örnekte , PendingIntent bildirim oluşturucusunun SetContentIntent yöntemine geçirilmeden önce kaynak uygulamanın etkinliğiyle ilişkilendirilir. bayrağı PendingIntentFlags.OneShot yöntemine PendingIntent.GetActivity geçirilir, böylece PendingIntent yalnızca bir kez kullanılır. Bu kod çalıştırıldığında aşağıdaki bildirim görüntülenir:

İlk eylem bildirimi

Bu bildirime dokunduğunuzda kullanıcı, kaynak etkinliğe geri döner.

Üretim uygulamasında, kullanıcı bildirim etkinliğinde Geri düğmesine bastığında uygulamanızın arka yığını işlemesi gerekir (Android görevleri ve arka yığın hakkında bilginiz yoksa bkz. Görevler ve Geri Yığını). Çoğu durumda, bildirim etkinliğinden geriye doğru gezinmek kullanıcıyı uygulamadan ve Giriş ekranına geri döndürmelidir. Arka yığını yönetmek için uygulamanız TaskStackBuilder sınıfını kullanarak arka yığınla bir PendingIntent oluşturur.

Gerçek dünyada dikkat edilmesi gereken bir diğer nokta da, kaynak etkinliğin bildirim etkinliğine veri göndermesi gerekebileceğidir. Örneğin, bildirim bir kısa mesaj geldiğini gösterebilir ve bildirim etkinliği (ileti görüntüleme ekranı), iletiyi kullanıcıya görüntülemek için iletinin kimliğini gerektirir. oluşturan PendingIntent etkinlik Intent.PutExtra yöntemini kullanarak bu verilerin bildirim etkinliğine geçirilmesi için amada veri (örneğin, bir dize) ekleyebilir.

Aşağıdaki kod örneği, arka yığını yönetmek için nasıl kullanılacağını TaskStackBuilder gösterir ve adlı SecondActivitybir bildirim etkinliğine tek bir ileti dizesi gönderme örneği içerir:

// Setup an intent for SecondActivity:
Intent secondIntent = new Intent (this, typeof(SecondActivity));

// Pass some information to SecondActivity:
secondIntent.PutExtra ("message", "Greetings from MainActivity!");

// Create a task stack builder to manage the back stack:
TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this);

// Add all parents of SecondActivity to the stack:
stackBuilder.AddParentStack (Java.Lang.Class.FromType (typeof (SecondActivity)));

// Push the intent that starts SecondActivity onto the stack:
stackBuilder.AddNextIntent (secondIntent);

// Obtain the PendingIntent for launching the task constructed by
// stackbuilder. The pending intent can be used only once (one shot):
const int pendingIntentId = 0;
PendingIntent pendingIntent =
    stackBuilder.GetPendingIntent (pendingIntentId, PendingIntentFlags.OneShot);

// Instantiate the builder and set notification elements, including
// the pending intent:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)
    .SetContentIntent (pendingIntent)
    .SetContentTitle ("Sample Notification")
    .SetContentText ("Hello World! This is my second action notification!")
    .SetSmallIcon (Resource.Drawable.ic_notification);

// Build the notification:
Notification notification = builder.Build();

// Get the notification manager:
NotificationManager notificationManager =
    GetSystemService (Context.NotificationService) as NotificationManager;

// Publish the notification:
const int notificationId = 0;
notificationManager.Notify (notificationId, notification);

Bu kod örneğinde uygulama iki etkinlik içerir: MainActivity (yukarıdaki bildirim kodunu içerir) ve SecondActivitykullanıcının bildirime dokunduktan sonra gördüğü ekran. Bu kod çalıştırıldığında, basit bir bildirim (önceki örneğe benzer) sunulur. Bildirime dokunulduğunda kullanıcı ekrana gelir SecondActivity :

İkinci etkinlik ekran görüntüsü

Dize iletisi (amacın PutExtra yöntemine geçirilir) şu kod satırı aracılığıyla alınır SecondActivity :

// Get the message from the intent:
string message = Intent.Extras.GetString ("message", "");

Bu alınan "MainActivity'den selamlar!" iletisi, yukarıdaki ekran görüntüsünde SecondActivity gösterildiği gibi ekranda görüntülenir. Kullanıcı içindeyken Geri düğmesine bastığındaSecondActivity, gezinti uygulamanın dışına çıkar ve uygulamanın başlatılmasından önce ekrana geri döner.

Bekleyen amaçlar oluşturma hakkında daha fazla bilgi için bkz . PendingIntent.

Temel bildirimin ötesinde

Bildirimler, Android'de varsayılan olarak basit bir temel düzen biçimine sahiptir, ancak ek NotificationCompat.Builder yöntem çağrıları yaparak bu temel biçimi geliştirebilirsiniz. Bu bölümde, bildiriminize büyük bir fotoğraf simgesi eklemeyi öğrenecek ve genişletilmiş düzen bildirimleri oluşturma örneklerini göreceksiniz.

Büyük simge biçimi

Android bildirimleri genellikle kaynak uygulamanın simgesini (bildirimin sol tarafında) görüntüler. Ancak bildirimler, standart küçük simge yerine bir resim veya fotoğraf (büyük bir simge) görüntüleyebilir. Örneğin, bir mesajlaşma uygulaması, uygulama simgesi yerine gönderenin fotoğrafını görüntüleyebilir.

Aşağıda temel bir Android 5.0 bildirimi örneği verilmiştir; yalnızca küçük uygulama simgesini görüntüler:

Örnek normal bildirim

Burada, büyük bir simge görüntülemek üzere değiştirdikten sonra bildirimin ekran görüntüsü yer alır. Xamarin kod maymunu görüntüsünden oluşturulan bir simge kullanılır:

Örnek büyük simge bildirimi

Büyük simge biçiminde bir bildirim sunulduğunda, küçük uygulama simgesinin büyük simgenin sağ alt köşesinde rozet olarak görüntülendiğine dikkat edin.

Bir görüntüyü bildirimde büyük bir simge olarak kullanmak için bildirim oluşturucusunun SetLargeIcon yöntemini çağırır ve görüntünün bit eşlemini geçirirsiniz. aksine SetSmallIcon, SetLargeIcon yalnızca bit eşlem kabul eder. Görüntü dosyasını bit eşlem haline dönüştürmek için BitmapFactory sınıfını kullanırsınız. Örneğin:

builder.SetLargeIcon (BitmapFactory.DecodeResource (Resources, Resource.Drawable.monkey_icon));

Bu örnek kod Resources/drawable/monkey_icon.png konumunda görüntü dosyasını açar, bir bit eşlem olarak dönüştürür ve sonuçta elde edilen bit eşlemi öğesine NotificationCompat.Buildergeçirir. Genellikle, kaynak görüntü çözünürlüğü küçük simgeden daha büyüktür, ancak çok büyük değildir. Çok büyük bir görüntü, bildirimin gönderilmesini geciktirebilecek gereksiz yeniden boyutlandırma işlemlerine neden olabilir.

Büyük metin stili

Büyük Metin stili, bildirimlerde uzun iletileri görüntülemek için kullandığınız genişletilmiş bir düzen şablonudur. Tüm genişletilmiş düzen bildirimleri gibi Büyük Metin bildirimi de başlangıçta küçük bir sunu biçiminde görüntülenir:

Örnek Büyük Metin bildirimi

Bu biçimde, iletinin yalnızca bir alıntısı gösterilir ve iki noktayla sonlandırılır. Kullanıcı bildirimde aşağı doğru sürüklendiğinde, bildirim iletisinin tamamını göstermek için genişler:

Genişletilmiş Büyük Metin bildirimi

Bu genişletilmiş düzen biçimi, bildirimin en altındaki özet metni de içerir. Büyük Metin bildiriminin en yüksek yüksekliği 256 dp'dir.

Büyük Metin bildirimi oluşturmak için, daha önce olduğu gibi bir NotificationCompat.Builder nesnenin örneğini oluşturur ve ardından bir BigTextStyle nesnesi oluşturup nesneye NotificationCompat.Builder eklersiniz. Örnek aşağıda verilmiştir:

// Instantiate the Big Text style:
Notification.BigTextStyle textStyle = new Notification.BigTextStyle();

// Fill it with text:
string longTextMessage = "I went up one pair of stairs.";
longTextMessage += " / Just like me. ";
//...
textStyle.BigText (longTextMessage);

// Set the summary text:
textStyle.SetSummaryText ("The summary text goes here.");

// Plug this style into the builder:
builder.SetStyle (textStyle);

// Create the notification and publish it ...

Bu örnekte, ileti metni ve özet metni nesneye geçirilmeden önce nesnede BigTextStyle (textStyle) depolanır NotificationCompat.Builder.

Resim stili

Görüntü stili (Büyük Resim stili olarak da adlandırılır), bildirimin gövdesinde görüntü görüntülemek için kullanabileceğiniz genişletilmiş bir bildirim biçimidir. Örneğin, bir ekran görüntüsü uygulaması veya fotoğraf uygulaması, kullanıcıya yakalanan son görüntünün bildirimini sağlamak için Görüntü bildirim stilini kullanabilir. Görüntü bildiriminin en yüksek yüksekliğinin 256 dp olduğunu unutmayın. Android, kullanılabilir bellek sınırları içinde görüntüyü bu maksimum yükseklik kısıtlamasına sığacak şekilde yeniden boyutlandıracaktır.

Tüm genişletilmiş düzen bildirimleri gibi, Görüntü bildirimleri de ilk olarak eşlik eden ileti metninin alıntısını görüntüleyen kompakt bir biçimde görüntülenir:

Küçük resim bildirimi görüntü gösterilmemiş

Kullanıcı Görüntü bildiriminde aşağı doğru sürüklendiğinde, bir görüntüyü ortaya çıkarmak için genişler. Örneğin, önceki bildirimin genişletilmiş sürümü aşağıda verilmiştir:

Genişletilmiş görüntü bildirimi görüntüyü ortaya çıkar

Bildirim sıkıştırılmış biçimde görüntülendiğinde bildirim metnini (daha önce gösterildiği gibi bildirim oluşturucusunun SetContentText yöntemine geçirilen metin) görüntülediğine dikkat edin. Ancak, bildirim görüntüyü ortaya çıkarmak için genişletildiğinde, resmin üzerinde özet metni görüntüler.

Görüntü bildirimi oluşturmak için, bir NotificationCompat.Builder nesnenin örneğini daha önce olduğu gibi oluşturur ve sonra nesnesine NotificationCompat.Builder bir BigPictureStyle nesnesi oluşturup eklersiniz. Örneğin:

// Instantiate the Image (Big Picture) style:
Notification.BigPictureStyle picStyle = new Notification.BigPictureStyle();

// Convert the image to a bitmap before passing it into the style:
picStyle.BigPicture (BitmapFactory.DecodeResource (Resources, Resource.Drawable.x_bldg));

// Set the summary text that will appear with the image:
picStyle.SetSummaryText ("The summary text goes here.");

// Plug this style into the builder:
builder.SetStyle (picStyle);

// Create the notification and publish it ...

SetLargeIcon yöntemi NotificationCompat.Buildergibi BigPicture yöntemi BigPictureStyle de bildirimin gövdesinde görüntülemek istediğiniz görüntünün bit eşlemini gerektirir. Bu örnekte, DecodeResource yöntemi BitmapFactory Resources/drawable/x_bldg.png konumunda bulunan görüntü dosyasını okur ve bir bit eşlem haline dönüştürür.

Kaynak olarak paketlenmeyen görüntüleri de görüntüleyebilirsiniz. Örneğin, aşağıdaki örnek kod yerel SD karttan bir görüntüyü yükler ve görüntü bildiriminde görüntüler:

// Using the Image (Big Picture) style:
Notification.BigPictureStyle picStyle = new Notification.BigPictureStyle();

// Read an image from the SD card, subsample to half size:
BitmapFactory.Options options = new BitmapFactory.Options();
options.InSampleSize = 2;
string imagePath = "/sdcard/Pictures/my-tshirt.jpg";
picStyle.BigPicture (BitmapFactory.DecodeFile (imagePath, options));

// Set the summary text that will appear with the image:
picStyle.SetSummaryText ("Check out my new T-Shirt!");

// Plug this style into the builder:
builder.SetStyle (picStyle);

// Create notification and publish it ...

Bu örnekte , /sdcard/Pictures/my-tshirt.jpg konumunda bulunan görüntü dosyası yüklenir, özgün boyutunun yarısına yeniden boyutlandırılır ve bildirimde kullanılmak üzere bir bit eşlem haline dönüştürülür:

Bildirimde örnek tişört resmi

Görüntü dosyasının boyutunu önceden bilmiyorsanız, bitmapFactory.DecodeFile çağrısının bir özel durum işleyicisinde sarmalanması iyi bir fikirdir; görüntü Android'in yeniden boyutlandırılamayacak kadar büyük olması durumunda bir OutOfMemoryError özel durum oluşturulabilir.

Büyük bit eşlem görüntülerini yükleme ve kodunu çözme hakkında daha fazla bilgi için bkz . Büyük Bit Eşlemleri Verimli Bir Şekilde Yükleme.

Gelen kutusu stili

Gelen Kutusu biçimi, bildirimin gövdesinde ayrı metin satırları (e-posta gelen kutusu özeti gibi) görüntülemeye yönelik genişletilmiş bir düzen şablonudur. Gelen Kutusu biçim bildirimi ilk olarak sıkıştırılmış biçimde görüntülenir:

Örnek sıkıştırılmış gelen kutusu bildirimi

Kullanıcı bildirimde aşağı doğru sürüklendiğinde, aşağıdaki ekran görüntüsünde gösterildiği gibi bir e-posta özeti göstermek için genişler:

Genişletilmiş örnek gelen kutusu bildirimi

Gelen Kutusu bildirimi oluşturmak için, daha önce olduğu gibi bir NotificationCompat.Builder nesne örneği oluşturur ve nesnesine NotificationCompat.Builderbir InboxStyle nesnesi eklersiniz. Örnek aşağıda verilmiştir:

// Instantiate the Inbox style:
Notification.InboxStyle inboxStyle = new Notification.InboxStyle();

// Set the title and text of the notification:
builder.SetContentTitle ("5 new messages");
builder.SetContentText ("chimchim@xamarin.com");

// Generate a message summary for the body of the notification:
inboxStyle.AddLine ("Cheeta: Bananas on sale");
inboxStyle.AddLine ("George: Curious about your blog post");
inboxStyle.AddLine ("Nikko: Need a ride to Evolve?");
inboxStyle.SetSummaryText ("+2 more");

// Plug this style into the builder:
builder.SetStyle (inboxStyle);

Bildirim gövdesine yeni metin satırları eklemek için nesnenin Addline yöntemini InboxStyle çağırın (Gelen Kutusu bildiriminin en yüksek yüksekliği 256 dp'dir). Büyük Metin stilinin aksine, Gelen Kutusu stilinin bildirim gövdesindeki tek tek metin satırlarını desteklediğini unutmayın.

Tek tek metin satırlarını genişletilmiş biçimde görüntülemesi gereken tüm bildirimler için Gelen Kutusu stilini de kullanabilirsiniz. Örneğin, Gelen Kutusu bildirim stili birden çok bekleyen bildirimi özet bildirimde birleştirmek için kullanılabilir. Tek bir Gelen Kutusu stil bildirimini yeni bildirim içeriği satırlarıyla güncelleştirebilirsiniz (yukarıdaki Bildirim Güncelleştirme bölümüne bakın), yeni, çoğunlukla benzer bildirimlerin sürekli akışını oluşturmak yerine.

Meta verileri yapılandırma

NotificationCompat.Builder , bildiriminizle ilgili meta verileri ayarlamak için çağırabileceğiniz öncelik, görünürlük ve kategori gibi yöntemler içerir. Android, bildirimlerin nasıl ve ne zaman görüntüleneceğini belirlemek için kullanıcı tercih ayarlarıyla birlikte bu bilgileri kullanır.

Öncelik ayarları

Android 7.1 ve daha düşük sürümlerde çalışan uygulamaların önceliği doğrudan bildirimin üzerinde ayarlaması gerekir. Bildirimin öncelik ayarı, bildirim yayımlandığında iki sonucu belirler:

  • Bildirimin diğer bildirimlerle ilgili olarak göründüğü yer. Örneğin, yüksek öncelikli bildirimler, her bildirimin ne zaman yayımlandığına bakılmaksızın bildirimler çekmecesinde düşük öncelikli bildirimlerin üzerinde sunulur.

  • Bildirimin Uyarı bildirimi biçiminde görüntülenip görüntülenmeyeceği (Android 5.0 ve üzeri). Uyarı bildirimleri olarak yalnızca yüksek ve en yüksek öncelikli bildirimler görüntülenir.

Xamarin.Android, bildirim önceliğini ayarlamak için aşağıdaki numaralandırmaları tanımlar:

  • NotificationPriority.Max – Kullanıcıyı acil veya kritik bir duruma (örneğin, gelen arama, sıralı yol tarifleri veya acil durum uyarısı) uyarır. Android 5.0 ve üzeri cihazlarda, en yüksek öncelik bildirimleri Uyarı biçiminde görüntülenir.

  • NotificationPriority.High – Kullanıcıyı önemli olaylardan (önemli e-postalar veya gerçek zamanlı sohbet iletilerinin gelmesi gibi) haberdar eder. Android 5.0 ve üzeri cihazlarda, yüksek öncelikli bildirimler Uyarı biçiminde görüntülenir.

  • NotificationPriority.Default – Kullanıcıya orta düzeyde önem derecesine sahip koşulları bildirir.

  • NotificationPriority.Low – Kullanıcının bilgilendirilmesi gereken acil olmayan bilgiler için (örneğin, yazılım güncelleştirme anımsatıcıları veya sosyal ağ güncelleştirmeleri).

  • NotificationPriority.Min – Kullanıcının yalnızca bildirimleri görüntülerken fark ettiğini arka plan bilgileri için (örneğin, konum veya hava durumu bilgileri).

Bildirimin önceliğini ayarlamak için, öncelik düzeyini geçirerek nesnesinin NotificationCompat.Builder SetPriority yöntemini çağırın. Örneğin:

builder.SetPriority (NotificationPriority.High);

Aşağıdaki örnekte, bildirim çekmecesinin üst kısmında "Önemli bir ileti!" adlı yüksek öncelikli bildirim görüntülenir:

Örnek yüksek öncelikli bildirim

Bu yüksek öncelikli bir bildirim olduğundan, Android 5.0'da kullanıcının geçerli etkinlik ekranının üzerinde Bir Uyarı bildirimi olarak da görüntülenir:

Örnek Uyarı bildirimi

Sonraki örnekte düşük öncelikli "Gün için düşünülmüş" bildirimi, daha yüksek öncelikli bir pil düzeyi bildirimi altında görüntülenir:

Örnek düşük öncelikli bildirim

"Gün için düşünülmüş" bildirimi düşük öncelikli bir bildirim olduğundan, Android bunu Uyarı biçiminde görüntülemez.

Not

Android 8.0 ve üzeri sürümlerde bildirim kanalının ve kullanıcı ayarlarının önceliği bildirimin önceliğini belirler.

Görünürlük ayarları

Android 5.0 sürümünden itibaren, güvenli kilit ekranında ne kadar bildirim içeriğinin görüneceğini denetlemek için görünürlük ayarı kullanılabilir. Xamarin.Android, bildirim görünürlüğünü ayarlamak için aşağıdaki numaralandırmaları tanımlar:

  • NotificationVisibility.Public – Bildirimin tüm içeriği güvenli kilit ekranında görüntülenir.

  • NotificationVisibility.Private – Güvenli kilit ekranında (bildirim simgesi ve bunu yayınlayan uygulamanın adı gibi) yalnızca temel bilgiler görüntülenir, ancak bildirimin diğer ayrıntıları gizlenir. Tüm bildirimler varsayılan olarak olur NotificationVisibility.Private.

  • NotificationVisibility.Secret – Güvenli kilit ekranında hiçbir şey görüntülenmez, bildirim simgesi bile görüntülenmez. Bildirim içeriği yalnızca kullanıcı cihazın kilidini açtıktan sonra kullanılabilir.

Bir bildirimin görünürlüğünü ayarlamak için uygulamalar, görünürlük ayarını geçirerek nesnesinin yöntemini NotificationCompat.Builder çağırırSetVisibility. Örneğin, bu çağrısı SetVisibility bildirimini Privateyapar:

builder.SetVisibility (NotificationVisibility.Private);

Bir Private bildirim gönderildiğinde, güvenli kilit ekranında yalnızca uygulamanın adı ve simgesi görüntülenir. Kullanıcı, bildirim iletisi yerine "Bu bildirimi görmek için cihazınızın kilidini açın" ifadesini görür:

Cihazınızın kilidini açma bildirim iletisi

Bu örnekte NotificationsLab, kaynak uygulamanın adıdır. Bildirimin bu düzeltilmiş sürümü yalnızca Kilit ekranı güvenli olduğunda (PIN, desen veya parola ile güvenlidir) görüntülenir; kilit ekranı güvenli değilse, bildirimin tüm içeriği kilit ekranında kullanılabilir.

Kategori ayarları

Android 5.0'da başlayarak, önceden tanımlanmış kategoriler bildirimleri sıralamak ve filtrelemek için kullanılabilir. Xamarin.Android, bu kategoriler için aşağıdaki numaralandırmaları sağlar:

  • Notification.CategoryCall – Gelen telefon görüşmesi.

  • Notification.CategoryMessage – Gelen kısa mesaj.

  • Notification.CategoryAlarm – Bir alarm koşulu veya süre sonu.

  • Notification.CategoryEmail – Gelen e-posta iletisi.

  • Notification.CategoryEvent – Takvim etkinliği.

  • Notification.CategoryPromo – Tanıtım amaçlı bir mesaj veya reklam.

  • Notification.CategoryProgress – Arka plan işleminin ilerleme durumu.

  • Notification.CategorySocial – Sosyal ağ güncelleştirmesi.

  • Notification.CategoryError – Arka plan işlemi veya kimlik doğrulama işlemi hatası.

  • Notification.CategoryTransport – Medya kayıttan yürütme güncelleştirmesi.

  • Notification.CategorySystem – Sistem kullanımı (sistem veya cihaz durumu) için ayrılmıştır.

  • Notification.CategoryService – Arka plan hizmetinin çalıştığını gösterir.

  • Notification.CategoryRecommendation – Çalışmakta olan uygulamayla ilgili bir öneri iletisi.

  • Notification.CategoryStatus – Cihaz hakkındaki bilgiler.

Bildirimler sıralandığında, bildirimin önceliği kategori ayarından önceliklidir. Örneğin, yüksek öncelikli bir bildirim, kategoriye Promo ait olsa bile Uyarı olarak görüntülenir. Bildirimin kategorisini ayarlamak için, kategori ayarını geçirerek nesnesinin yöntemini NotificationCompat.Builder çağırırsınızSetCategory. Örneğin:

builder.SetCategory (Notification.CategoryCall);

Rahatsız etmeyin özelliği (Android 5.0'daki yenilikler) bildirimleri kategorilere göre filtreler. Örneğin, Ayarlar'daki Rahatsız etmeyin ekranı, kullanıcının telefon aramaları ve mesajlar için bildirimleri muaf tutmasına olanak tanır:

Ekran anahtarlarını rahatsız etmeyin

Kullanıcı, telefon aramaları dışında tüm kesintileri engellemek için Rahatsız etmeyin'i yapılandırdığında (yukarıdaki ekran görüntüsünde gösterildiği gibi), Android, cihaz Rahatsız etmeyin modundayken kategori ayarına Notification.CategoryCall sahip bildirimlerin sunulmasına izin verir. Bildirimlerin Rahatsız etmeyin modunda hiçbir zaman engellenmediğini Notification.CategoryAlarm unutmayın.

Bildirim stilleri

ile NotificationCompat.BuilderBüyük Metin, Görüntü veya Gelen Kutusu stil bildirimleri oluşturmak için uygulamanızın bu stillerin uyumluluk sürümlerini kullanması gerekir. Örneğin, Büyük Metin stilini kullanmak için örneğiNotificationCompat.BigTextstyle:

NotificationCompat.BigTextStyle textStyle = new NotificationCompat.BigTextStyle();

// Plug this style into the builder:
builder.SetStyle (textStyle);

Benzer şekilde, uygulamanız sırasıyla Gelen Kutusu ve Görüntü stilleri için ve NotificationCompat.BigPictureStyle kullanabilirNotificationCompat.InboxStyle.

Bildirim önceliği ve kategorisi

NotificationCompat.BuilderSetPriority yöntemini destekler (Android 4.1'den itibaren kullanılabilir). Ancak, SetCategory kategoriler Android 5.0'da kullanıma sunulan yeni bildirim meta veri sisteminin bir parçası olduğundan yöntemi tarafından NotificationCompat.Builder desteklenmez.

Android'in kullanılamayan SetCategory eski sürümlerini desteklemek için kodunuz, API düzeyi Android 5.0'a eşit veya bundan büyük olduğunda (API düzeyi 21) koşullu çağrı SetCategory yapmak için çalışma zamanında API düzeyini denetleyebilir:

if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop) {
    builder.SetCategory (Notification.CategoryEmail);
}

Bu örnekte uygulamanın Hedef Çerçevesi Android 5.0 ve En Düşük Android Sürümü Ise Android 4.1 (API Düzeyi 16) olarak ayarlanmıştır. SetCategory API düzeyi 21 ve sonraki sürümlerde kullanılabildiğinden, bu örnek kod yalnızca kullanılabilir olduğunda çağırırSetCategory; API düzeyi 21'den küçük olduğunda çağrı SetCategory yapılmaz.

Kilit ekranı görünürlüğü

Android, Android 5.0'ın (API düzeyi 21) öncesinde kilit ekranı bildirimlerini desteklemediğinden yöntemi NotificationCompat.Builder desteklemez SetVisibility . için SetCategoryyukarıda açıklandığı gibi kodunuz çalışma zamanında API düzeyini denetleyebilir ve yalnızca kullanılabilir olduğunda çağrı SetVisiblity yapabilir:

if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop) {
    builder.SetVisibility (Notification.Public);
}

Özet

Bu makalede, Android'de yerel bildirimlerin nasıl oluşturulacağı açıklanmıştır. Bir bildirimin anatomisini, bildirimleri oluşturmak için nasıl kullanılacağınıNotificationCompat.Builder, büyük simgedeki bildirimlerin nasıl stillendirildiği, Büyük Metin, Görüntü ve Gelen Kutusu biçimleri, öncelik, görünürlük ve kategori gibi bildirim meta veri ayarlarının nasıl ayarlanacağı ve bildirimden bir etkinliğin nasıl başlatılacağını açıkladı. Bu makalede ayrıca bu bildirim ayarlarının Android 5.0'da kullanıma sunulan yeni Heads-up, kilit ekranı ve Rahatsız etmeyin özellikleriyle nasıl çalıştığı açıklanmıştır. Son olarak, Android'in önceki sürümleriyle bildirim uyumluluğunu korumak için kullanmayı öğrendinsiniz NotificationCompat.Builder .

Android için bildirim tasarlama hakkında yönergeler için bkz . Bildirimler.