Konuşma bildirimleri ve widget'ları

Android 11, Konuşma Bildirimlerinin davranışını ve Bildirimler gölgesindeki yerleşimini önceliğe ve uyarı düzeyine göre özelleştirmeye yönelik destek ekleyerek Konuşmaların Önemli olarak işaretlenmesine ve Konuşma alanında konuşmaya özel baloncukların başlatılmasına olanak tanır.

Android 11'in bu özelliklerini temel alan Android 12, iki yeni Konuşma özelliği sunuyor:

  • Ayarlar'daki Son Konuşmalar özelliği, kullanıcıların bir bildirim beklemeden son konuşmalar için bildirim davranışını özelleştirmesine olanak tanır.

  • Konuşma Widget'ı özelliği, kullanıcıların ana ekranda sohbetleri kolayca açmasına olanak tanıyarak son konuşmaların hızlı bir görünümünü sunar.

Bu belgede konuşma bildirimlerinin ve pencere öğelerinin uygulanması, özelleştirilmesi ve doğrulanması yönleri açıklanmaktadır.

Konuşma Bildirimlerine genel bakış

Android 11, mevcut paylaşım kısayol nesnesi (Android 9 ile kullanıma sunulan) tarafından temsil edilen yeni bir sistem ilkesi olan Konuşma'yı sunar.

Konuşmalar temel öğesi şu şekilde kullanılabilir:

  • Sharesheet (zaten Android 10'da) aracılığıyla sistemdeki uygulamalar arasındaki Konuşma verilerini paylaşmak için.

  • Baloncukları sürmek için ( Android 11'deki kısayollar ). Bkz. Şekil 1 .

  • Bildirim gölgesinin üstündeki yeni Konuşma alanına katılmak için (Android 11'de uygulanmıştır). Bkz. Şekil 2 .

  • Konuşma Widget'ları oluşturmak için (Android 12'de uygulanmıştır).

    conv_bubbles

    Şekil 1: Bildirim çekmecesinden bir baloncuk olarak başlatılan bildirim

    conv_notification

    Şekil 2: Bildirim gölgesinin üstünde yer alan konuşma alanı

Bildirim, konuşmayı temsil eden kısayola bağlanmanın yanı sıra, konuşmanın son mesajını Konuşma alanına eklemek için MessagingStyle'ı da kullanır.

GMS ortaklarının aşağıdakileri uygulaması gerekmektedir:

  • Bildirim gölgesinin üstünde ayrı bir bölüm olarak yeni bir Konuşma alanı.
  • Konuşmaya özgü balon desenine izin veren ve onu destekleyen bir bildirim stili.

Konuşmaları uygulayan iş ortaklarının Önemli konuşmaları da uygulaması gerekir. Ancak Konuşmaların uygulanması benzer nitelikteki OEM konseptleriyle uyumlu hale getirilebilir. Genel olarak iş ortakları, konuşma bölümünü kendi Sistem Kullanıcı Arayüzlerine göre hizalama özgürlüğüne sahiptir. İş ortağının HAL/sürücü/çekirdek kodunu/uzantılarını değiştirmesi veya uygulaması gerekmez.

AOSP'deki SystemUI ve PeopleService bölümlerindeki aşağıdaki referans uygulamasına bakın:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Doğrulama

Özellik sürümünüzün amaçlandığı gibi çalıştığından emin olmak için aşağıdakileri doğrulayın:

  1. Conversation API'yi tam olarak destekleyen uygulamalar, bildirimlerini yeni bölümde görür ve bu bildirimleri genel NotificationChannel yerine konuşmaya göre özelleştirebilir.

  2. Konuşmaya özel baloncuklar çalışıyor.

Uygulamayı doğrulamak için bildirim paketinde aşağıdaki testleri kullanın:

  • CTS testleri.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • CTS Doğrulayıcı testleri.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Konuşma Widget'larına genel bakış

Android 12'de Konuşma Widget'ı özelliği, uygulamaların Konuşma Widget'larında görüntülenen konuşmalar için durum sağlamasına izin vererek Android 11'de oluşturulan Konuşma temsillerini temel alır (önceki bölümde açıklandığı gibi).

conv_widgets

Şekil 3: Konuşma Widget'larında görüntülenen konuşmalar

Android 12'deki Konuşma Widget'ı özelliği, kullanıcıların sohbetleri ana ekranda kolayca açmasına olanak tanıyarak bağlantıyı geliştirir. Widget'lar, kullanıcıların konuşma durumlarının parçalarını gösterirken verimli bir şekilde konuşmalarına geri dönmelerine olanak tanıyan gelişmiş kısayollardır.

Ortak aşağıdakileri uygulamalıdır:

  1. SystemUI tarafından sağlanan bir widget.
  2. Bu widget'ları widget seçme ekranından ekleme akışı.
  3. Widget'ın yeniden boyutlandırılması desteği aşağıdaki gibidir:

Konuşma Widget'larını uygularken aşağıdaki bağımlılıkların farkında olun:

  • İş ortağının HAL/sürücü/çekirdek kodunu değiştirmesi veya uygulaması gerekmez.
  • Uygulamaların bir konuşmaya ve ilgili widget'a durum veya kullanılabilirlik bilgileri eklemesine olanak tanıyan Status API, uygulama için kullanılır.
  • Süreç hem yeni cihaz uygulamalarında hem de yükseltme uygulamasında aynıdır.
  • Konuşma Widget'ları özelliği, Android 12'de başlatılan ve yakın zamanda görülen konuşmaları (örneğin bildirimlerden) önbelleğe alan yeni bir özelliğe bağımlıdır. Bu son özellik, bir kullanıcının potansiyel olarak ana ekranına ekleyebileceği konuşmaların listesini genişletmeye olanak tanır.

SystemUI ve Launcher3 dosyalarındaki aşağıdaki referans uygulamasına bakın:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Özelleştirme

Konuşma Widget'ları özelliği açılamaz veya kapatılamaz. Ancak bir iş ortağı, GMS gereksinimleri karşılandığı sürece widget şablonlarının düzenlerini değiştirebilir.

Doğrulama

Özellik sürümünüzün amaçlandığı gibi çalıştığından emin olmak için aşağıdakileri doğrulayın:

  1. Başlatıcıya uzun basıldığında, widget seçici aracılığıyla bir Konuşma için yeni bir Konuşma Widget'ı eklenebilir. Widget seçici kullanıcı arayüzü için şekil 4'e bakın:

    widget_picker

    Şekil 4: Yeni bir Konuşma Widget'ı eklemek için Widget seçici kullanıcı arayüzü

  2. Seçilen Konuşmadan cihaza bildirimler gönderildiğinde, widget bu bildirimleri yansıtacak şekilde güncellenir.

  3. ConversationStatus API'sini kullanarak söz konusu Konuşmaya durumlar uygulandığında, widget bu durumları yansıtır.

  4. Kullanıcılar widget'ları yeniden boyutlandırabilir ve widget'ların boyutlarını mevcut Başlatıcılarına göre değiştirebilirler. Widget düzenleriniz, farklı cihazlarda ve widget'ı yeniden boyutlandırırken farklı Başlatıcı boyutlarıyla iyi çalışmalıdır.

Uygulamayı doğrulamak için bildirim paketinde aşağıdaki testleri kullanın:

  • API yüzeyleri için CTS testleri (PeopleManagerTest).

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • GMS gereksinimi için manuel testler - Konuşmalar.