대화

Android 11은 대화를 처리하는 방법을 여러 가지로 개선합니다. 대화는 다음과 같은 커뮤니케이션입니다.

  • 실시간으로 이루어집니다.
  • 단방향이 아니라 양방향 또는 다방향입니다.
  • 사람(봇이 아님) 두 명 이상 사이에 이루어집니다.

이제 이러한 대화는 고유한 영역에서 표시되고 대화의 알림이 강조표시되며 추가 기능이 제공됩니다.

  • 사용자가 대화 알림을 길게 누르면 시스템에서 몇 가지 선택 사항이 제공됩니다.
    • 앱이 대화창을 지원하는 경우 대화를 대화창으로 올립니다.
    • 이 대화의 바로가기를 만들어 홈 화면에 추가합니다.
    • 이 대화에 관한 알림을 음소거하거나 일시 중지합니다.
    • 이 대화를 매우 중요한 것으로 표시합니다.
  • 알림 디자인은 사람을 나타내는 아바타를 강조하는 새 버전의 MessagingStyle을 대화를 실행하는 앱의 아이콘과 결합하여 사용합니다.

이렇게 특별하게 처리하기 위해 대화를 식별하려면 ShortcutManager 메서드를 호출하여 앱이 대화 바로가기를 게시해야 합니다. 기존 바로가기를 모두 바꾸려면 setDynamicShortcuts()를 호출하고 기존 바로가기를 삭제하지 않고 새 바로가기를 추가하려면 addDynamicShortcuts()를 호출합니다. 새 메서드 pushDynamicShortCut()을 호출하여 단일 바로가기를 추가할 수도 있습니다. 대화 바로가기는 오래 지속되어야 하며 사람 데이터가 연결되어 대화의 다른 참여자를 식별할 수 있어야 합니다. 또한 바로가기에 LocusId를 설정하고 앱 내 활동 및 프래그먼트를 LocusId로 주석 처리하는 것이 좋습니다. 이렇게 하면 시스템에서 앱 사용에 따라 대화의 순위를 정확하게 매길 수 있습니다.

대화가 더 이상 존재하지 않으면 앱은 ShortcutManager.removeLongLivedShortcuts()를 사용하여 바로가기를 삭제할 수 있습니다. 이렇게 하면 시스템에서 대화와 관련된 모든 데이터가 삭제됩니다.

앱에서 대화와 관련된 알림을 전송하면 개발자는 MessagingStyle을 사용하고 대화 바로가기 링크를 포함해야 합니다. 이렇게 하면 시스템에서 알림을 특별한 대화로 처리할 수 있습니다.

사용자 행동에 따라 시스템은 특정 대화를 특히 중요한 것으로 지정하고 이를 캐시하여 대화를 눈에 잘 띄게 표시할 수 있습니다. 앱은 대화에 이런 우선 처리가 적용되는지 여부에 영향을 주지 않지만, 새로운 ShortcutManager.getShortcuts() 메서드를 호출하고 FLAG_MATCH_CACHED를 전달하여 현재 어떤 대화가 캐시되는지 파악할 수 있습니다.