Android 11은 우선 순위 및 경고 수준별로 알림 창에서 대화 알림의 동작 및 배치를 사용자 지정하기 위한 지원을 추가하여 대화를 중요로 표시하고 대화 공간에서 대화 관련 말풍선 을 시작할 수 있도록 합니다.
이러한 Android 11 기능을 기반으로 하는 Android 12는 두 가지 새로운 대화 기능을 제공합니다.
설정의 최근 대화 기능을 사용하면 알림을 기다리지 않고 최근 대화에 대한 알림 동작을 사용자 지정할 수 있습니다.
대화 위젯 기능을 사용하면 사용자가 홈 화면에서 쉽게 채팅을 열어 최근 대화를 빠르게 볼 수 있습니다.
이 문서는 대화 알림 및 위젯의 구현, 사용자 정의 및 유효성 검사 측면을 설명합니다.
대화 알림 개요
Android 11에는 기존 공유 바로 가기 개체 (Android 9와 함께 출시됨)로 표현되는 새로운 시스템 기본 요소인 대화가 도입되었습니다.
대화 프리미티브는 다음과 같이 사용할 수 있습니다.
Sharesheet (이미 Android 10에 있음)를 통해 시스템 전체에서 앱 간에 대화 데이터를 공유합니다.
알림 창 상단의 새로운 대화 공간에 참여하기 위해(Android 11에서 구현됨). 그림 2 를 참조하십시오.
대화 위젯 생성용(Android 12에서 구현됨).
그림 1: 알림 창에서 풍선으로 시작되는 알림
그림 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/
확인
기능 버전이 의도한 대로 작동하는지 확인하려면 다음을 확인하세요.
Conversation API를 완벽하게 지원하는 앱은 새 섹션에서 알림을 확인하고 일반 NotificationChannel 이 아닌 대화를 통해 알림을 사용자 지정할 수 있습니다.
대화별 말풍선이 작동 중입니다.
구현을 검증하려면 알림 패키지에서 다음 테스트를 사용하십시오.
CTS 테스트.
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
CTS 검증 도구 테스트.
cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
대화 위젯 개요
Android 12에서 대화 위젯 기능은 앱이 대화 위젯에 표시되는 대화에 대한 상태를 제공할 수 있도록 허용하여 Android 11에서 생성된 대화 표현(이전 섹션에서 설명함)을 기반으로 합니다.
그림 3: 대화 위젯에 표시된 대화
Android 12의 대화 위젯 기능은 사용자가 홈 화면에서 쉽게 채팅을 열 수 있도록 하여 연결을 촉진합니다. 위젯은 대화 상태의 스니펫을 표시하면서 사용자가 효율적으로 대화로 돌아갈 수 있도록 하는 향상된 바로 가기입니다.
파트너는 다음을 구현해야 합니다.
- SystemUI에서 제공하는 위젯입니다.
- 위젯 선택 화면에서 이러한 위젯을 추가하는 흐름입니다.
- 다음과 같이 위젯 크기 조정 지원:
- 사용자가 레이아웃 크기를 변경하거나 가로 방향으로 회전할 때
onAppWidgetOptionsChanged()
를 사용하여 레이아웃을 더 나은 크기의 레이아웃으로 변경합니다. -
maxResizeHeight
,maxResizeWidth
,minWidth
,minHeight
,minResizeWidth
,minResizeHeight
를 사용하여 위젯 크기 변경 사항을 올바르게 바인딩하십시오.
- 사용자가 레이아웃 크기를 변경하거나 가로 방향으로 회전할 때
대화 위젯을 구현할 때 다음 종속성에 유의하십시오.
- 파트너는 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 요구 사항이 충족되는 한 위젯 템플릿의 레이아웃을 변경할 수 있습니다.
확인
기능 버전이 의도한 대로 작동하는지 확인하려면 다음을 확인하세요.
런처를 길게 누르면 대화용 새 대화 위젯을 위젯 선택기를 통해 추가할 수 있습니다. 위젯 선택기 UI는 그림 4를 참조하세요.
그림 4: 새 대화 위젯을 추가하기 위한 위젯 선택기 UI
선택한 대화에서 장치로 알림을 보내면 위젯이 해당 알림을 반영하도록 업데이트됩니다.
ConversationStatus
API를 사용하여 해당 대화에 상태를 적용하면 위젯이 해당 상태를 반영합니다.사용자는 위젯의 크기를 조정할 수 있고 위젯은 현재 실행기에 따라 크기를 변경할 수 있습니다. 위젯 레이아웃은 다양한 장치의 다양한 실행기 크기와 위젯 크기 조정에서 잘 작동해야 합니다.
구현을 검증하려면 알림 패키지에서 다음 테스트를 사용하십시오.
API 표면에 대한 CTS 테스트(PeopleManagerTest).
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
GMS 요구 사항에 대한 수동 테스트 - 대화.