Görüşme Bildirimleri ve Widget'lar

Android 11, Bildirimler gölgesindeki Konuşma Bildirimlerinin davranışını ve yerleşimini öncelik ve uyarı düzeyine göre özelleştirme desteği 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.

Bu Android 11 özelliklerini temel alan Android 12, iki yeni Konuşma özelliği sunar:

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

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

Bu belge, Konuşma Bildirimleri ve pencere öğelerinin uygulama, özelleştirme ve doğrulama özelliklerini açıklar.

Görüşme Bildirimlerine genel bakış

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

Conversations ilkel şu şekilde kullanılabilir:

  • Sohbet verilerini sistem genelindeki uygulamalar arasında Sharesheet (zaten Android 10'da) aracılığıyla paylaşmak için.

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

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

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

    conv_bubbles

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

    conv_notification

    Şekil 2: Bildirim gölgesinin üstünde bulunan 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 dahil etmek için MessagingStyle'ı da kullanır.

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

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

Konuşmaları uygulayan iş ortaklarının da Önemli konuşmaları uygulaması gerekir. Ancak, Konuşmaların uygulanması benzer nitelikteki OEM kavramlarıyla uyumlu hale getirilebilir. Genel olarak iş ortakları, konuşma bölümünü kendi Sistem Kullanıcı Arayüzü ile uyumlu hale getirme ö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ümlerinde 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. Konuşma API'sını tam olarak destekleyen uygulamalar, bildirimlerini yeni bölümde görür ve bu bildirimleri genel NotificationChannel yerine konuşma yoluyla özelleştirebilir.

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

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

  • KTS 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 (önceki bölümde açıklandığı gibi) oluşturulan Konuşma temsillerini temel alır.

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 izin vererek bağlantıyı destekler. Widget'lar, kullanıcıların konuşma durumlarının snippet'lerini gösterirken konuşmalarına verimli bir şekilde geri dönmelerini sağlayan 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 eklemek için bir akış.
  3. Widget yeniden boyutlandırma desteği aşağıdaki gibi:

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 görüşmeye durum veya uygunluk bilgisi eklemesine izin veren Durum API'si ve ilgili pencere öğesi, uygulama için kullanılır.
  • İşlem, 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 ikinci ö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ında aşağıdaki başvuru 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 ortak, GMS gereksinimleri karşılandığı sürece, widget şablonlarının yerleşimlerini 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 süre 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 bildirim gönderildiğinde, widget bu bildirimleri yansıtacak şekilde güncellenir.

  3. ConversationStatus API'sini kullanarak bu Görüşmeye durumlar uygulandığında, pencere öğesi bu durumları yansıtır.

  4. Kullanıcılar, widget'ları yeniden boyutlandırabilir ve widget'lar, mevcut Başlatıcılarına göre boyutlarını değiştirebilir. Widget düzenleriniz, farklı cihazlarda ve widget'ın yeniden boyutlandırılmasında 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.