대화 알림 및 위젯

Android 11은 우선 순위 및 경고 수준별로 알림 창에서 대화 알림의 동작 및 배치를 사용자 지정하기 위한 지원을 추가하여 대화를 중요로 표시하고 대화 공간에서 대화 관련 말풍선 을 시작할 수 있도록 합니다.

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

  • 설정의 최근 대화 기능을 사용하면 알림을 기다리지 않고 최근 대화에 대한 알림 동작을 사용자 지정할 수 있습니다.

  • 대화 위젯 기능을 사용하면 사용자가 홈 화면에서 쉽게 채팅을 열어 최근 대화를 빠르게 볼 수 있습니다.

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

대화 알림 개요

Android 11에는 기존 공유 바로 가기 개체 (Android 9와 함께 출시됨)로 표현되는 새로운 시스템 기본 요소인 대화가 도입되었습니다.

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

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

  • 거품 운전용(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/드라이버/커널 코드를 수정하거나 구현할 필요가 없습니다.
  • 앱이 대화 및 관련 위젯에 상태 또는 가용성 정보를 추가할 수 있도록 하는 상태 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 요구 사항에 대한 수동 테스트 - 대화.