대화 알림 및 위젯

Android 11에서는 우선순위와 알림 수준을 기준으로 알림 창에 대화 알림의 동작과 위치를 맞춤설정하는 지원을 추가하여 대화를 중요 항목으로 표시하고 대화 공간에 대화별 대화창이 실행되도록 했습니다.

이러한 Android 11 기능을 기반으로 하여 Android 12에서는 두 가지 새로운 대화 기능을 제공합니다.

  • 설정의 최근 대화 기능을 통해 사용자는 알림을 기다리지 않고 최근 대화에 관한 알림 동작을 맞춤설정할 수 있습니다.

  • 대화 위젯 기능을 통해 사용자는 간편하게 홈 화면에서 채팅을 열어 최근 대화를 빠르게 확인할 수 있습니다.

이 문서에서는 대화 알림 및 위젯의 구현, 맞춤설정, 유효성 검사 측면을 설명합니다.

대화 알림 개요

Android 11에서는 기존 공유 바로가기 객체(Android 9에서 출시)로 표현되는 새로운 시스템 프리미티브인 대화를 도입합니다.

대화 프리미티브는 다음과 같이 사용할 수 있습니다.

  • Android 10에 이미 있는 Sharesheet를 통해 시스템 전체의 앱 간에 대화 데이터를 공유합니다.

  • 대화창(Android 11의 바로가기)을 구동합니다. 그림 1을 참고하세요.

  • 알림 창(Android 11에서 구현됨)의 상단에서 새 대화 공간에 참여합니다. 그림 2를 참고하세요.

  • 대화 위젯(Android 12에서 구현됨)을 만듭니다.

    conv_bubbles

    그림 1: 알림 창에서 대화창으로 실행되는 알림

    conv_notification

    그림 2: 알림 창 상단에 위치한 대화 공간

알림은 대화를 나타내는 바로가기에 연결하는 것 외에 MessagingStyle을 사용하여 대화 공간에 있는 대화의 마지막 메시지도 포함합니다.

GMS 파트너는 다음을 구현해야 합니다.

  • 알림 창 상단에 별도의 섹션으로 표시되는 새로운 대화 공간
  • 대화별 대화창 패턴을 허용하고 지원하는 알림 스타일

대화를 구현하는 파트너는 중요한 대화도 구현해야 합니다. 그러나 대화 구현은 유사한 성격의 OEM 개념에 맞출 수 있습니다. 전반적으로 파트너는 특정 시스템 UI에 맞춰 대화 섹션을 자유롭게 조정할 수 있습니다. 파트너는 HAL/드라이버/커널 코드/확장 프로그램을 수정하거나 구현할 필요가 없습니다.

AOSP의 SystemUI 및 PeopleService 섹션에서 다음 참조 구현을 확인하세요.

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/

유효성 검사

기능 버전이 의도한 대로 작동하도록 하려면 다음을 확인합니다.

  1. Conversation API를 완벽하게 지원하는 앱은 새로운 섹션에서 알림을 표시하고 일반 NotificationChannel이 아닌 대화를 기준으로 알림을 맞춤설정할 수 있습니다.

  2. 대화별 대화창이 작동합니다.

구현의 유효성을 검사하려면 알림 패키지에서 다음 테스트를 사용합니다.

  • CTS 테스트

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • CTS 인증 도구 테스트

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

대화 위젯 개요

Android 12의 대화 위젯 기능은 이전 섹션에서 설명한 대로 Android 11에서 생성된 대화 표현을 기반으로 빌드되며, 앱은 대화 위젯에 표시되는 대화의 상태를 제공할 수 있습니다.

conv_widgets

그림 3: 대화 위젯에 표시된 대화

Android 12의 대화 위젯 기능은 사용자가 간편하게 홈 화면에서 채팅을 열 수 있도록 하여 소통을 장려합니다. 이 위젯은 사용자가 대화 상태의 스니펫을 표시하면서 효율적으로 대화로 돌아갈 수 있도록 하는 향상된 바로가기입니다.

파트너는 다음을 구현해야 합니다.

  1. SystemUI에서 제공하는 위젯
  2. 위젯 선택 화면에서 이러한 위젯을 추가하는 흐름
  3. 다음과 같이 위젯 크기 조절 지원:

대화 위젯을 구현할 때 다음 종속 항목을 숙지합니다.

  • 파트너는 HAL/드라이버/커널 코드를 수정하거나 구현할 필요가 없습니다.
  • 앱이 대화 및 연결된 위젯에 상태나 사용 가능 여부 정보를 추가할 수 있게 하는 Status API가 구현에 사용됩니다.
  • 이 프로세스는 새 기기 구현과 업그레이드 구현 모두에서 동일합니다.
  • 대화 위젯 기능은 Android 12에서 출시되는 새로운 기능에 종속됩니다. 이 기능은 알림 등을 통해 최근에 본 대화를 캐시합니다. 후자의 기능을 사용하면 사용자가 홈 화면에 추가할 수 있는 대화의 목록을 확장할 수 있습니다.

SystemUI 파일과 Launcher3 파일에서 다음 참조 구현을 참고하세요.

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/

맞춤설정

대화 위젯 기능은 사용 설정하거나 사용 중지할 수 없습니다. 하지만 파트너는 GMS 요구 사항이 충족된다면 위젯 템플릿의 레이아웃을 변경할 수 있습니다.

유효성 검사

기능 버전이 의도한 대로 작동하도록 하려면 다음을 확인합니다.

  1. 런처를 길게 누르면 위젯 선택 도구를 통해 대화용 새 대화 위젯을 추가할 수 있습니다. 위젯 선택 도구 UI는 그림 4를 참고하세요.

    widget_picker

    그림 4: 새 대화 위젯을 추가하는 위젯 선택 도구 UI

  2. 선택된 대화에서 기기로 알림을 보내면 이 알림을 반영하도록 위젯이 업데이트됩니다.

  3. ConversationStatus API를 사용하여 이 대화에 상태를 적용하면 위젯에 상태가 반영됩니다.

  4. 사용자는 위젯의 크기를 조절할 수 있으며 위젯은 현재 런처에 따라 크기를 변경할 수 있습니다. 위젯 레이아웃은 다양한 기기에서 그리고 위젯 크기 조절에 따라 서로 다른 크기의 런처에서 잘 작동해야 합니다.

구현의 유효성을 검사하려면 알림 패키지에서 다음 테스트를 사용합니다.

  • API 영역의 CTS 테스트(PeopleManagerTest)

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • GMS 요구사항 수동 테스트 - 대화