Wear OS의 알림

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

시계의 알림은 스마트폰의 알림과 동일한 API를 사용하고 구조도 동일합니다.

알림은 다음 두 가지 방법으로 시계에 표시할 수 있습니다.

  1. 모바일 앱에서 알림을 만들고 시스템은 이 알림을 시계에 자동으로 브리징합니다.
  2. 웨어러블 앱에서 알림을 만듭니다.

두 시나리오에서 모두 개발자는 NotificationCompat.Builder 클래스를 사용하여 알림을 만듭니다. 빌더 클래스로 알림을 빌드하면 시스템에서는 알림을 올바르게 표시합니다.

예를 들어 모바일 앱에서 알림을 실행하면 각 알림은 알림 스트림에 카드로 표시됩니다.

notification-cards

그림 1. 스마트폰과 시계에 표시된 동일한 알림

최상의 결과를 얻으려면 NotificationCompat.Style 서브클래스 중 하나를 사용하세요.

참고: RemoteViews를 사용하는 알림에서는 맞춤 레이아웃이 제거되어, 웨어러블에는 텍스트와 아이콘만 표시됩니다. 그러나 시계에서 잘 작동하는 맞춤 카드 레이아웃을 사용하는 맞춤 알림을 만들 수 있습니다.

웨어러블 기기를 위한 권장 알림

모든 알림의 시작점으로 확장 가능한 알림을 사용하는 것이 좋습니다. 웨어러블 사용자의 참여를 유도하는 좋은 방법이기 때문입니다. 축소된 상태는 한눈에 빠르게 파악할 수 있도록 알림 트레이에 표시됩니다. 사용자가 알림을 탭하면 알림이 확장되어 추가 콘텐츠 및 작업이 있는 몰입도 높고 스크롤 가능한 환경이 표시됩니다.

NotificationCompat.Style 서브클래스를 사용하여 휴대기기에서와 동일한 방식으로 확장 가능한 알림을 만들 수 있습니다.

예를 들어 NotificationCompat.MessagingStyle을 사용하는 표준 알림은 다음과 같습니다. expandable-notification

그림 2. Wear OS의 MessagingStyle 알림의 예

알림의 확장된 상태 하단에 여러 작업이 스택되어 있는 것을 확인할 수 있습니다.

NotificationCompat.BigPictureStyle, NotificationCompat.BigTextStyle, NotificationCompat.InboxStyle, NotificationCompat.MessagingStyle의 예는 GitHub의 알림 샘플을 확인하세요.

도움말: 알림에 '답장' 작업이 포함된 경우(예: 메시지 앱) 알림의 동작을 개선할 수 있습니다. 예를 들어 setChoices()를 사용하여 웨어러블 또는 사전 정의된 텍스트 응답에서 직접 음성 입력 답장을 사용 설정합니다. 자세한 내용은 답장 버튼 추가를 참고하세요.

중복 알림 방지

기본적으로 알림은 연결된 스마트폰 앱에서 페어링된 시계로 브리징됩니다. 이는 웨어러블 앱을 설치하지 않은 경우에 유용합니다.

그러나 독립 실행형 시계 앱을 빌드하고 연결된 스마트폰 앱을 가지고 있는 경우, 이 두 앱이 중복 알림을 만듭니다.

Wear OS는 Bridging API를 통해 중복 알림을 중지하는 방법을 제공합니다. 자세한 내용은 Wear의 알림 브리지 모드를 참고하세요.

알림에 웨어러블 관련 기능 추가

알림에 웨어러블 관련 기능(예: 웨어러블 알림에서 앱 아이콘 숨기기 또는 사용자가 음성 입력으로 텍스트 응답을 지정하도록 허용)을 추가해야 하는 경우 NotificationCompat.WearableExtender 클래스를 사용하여 옵션을 지정할 수 있습니다. 이 API를 사용하는 방법은 다음과 같습니다.

  1. WearableExtender의 인스턴스를 만들고 알림에 관해 웨어러블 관련 옵션을 설정합니다.
  2. NotificationCompat.Builder의 인스턴스를 만들고 이 과정에서 앞서 설명한 것처럼 원하는 알림 속성을 설정합니다.
  3. 알림에서 extend()를 호출하고 WearableExtender를 전달합니다. 이렇게 하면 웨어러블 옵션이 알림에 적용됩니다.
  4. build()를 호출하여 알림을 만듭니다.

참고: 프레임워크의 NotificationManager를 사용하는 경우 NotificationCompat.WearableExtender의 일부 기능이 작동하지 않으므로 NotificationCompat를 사용해야 합니다.

사용자의 기기 전반에서 알림의 닫기(취소)를 동기화할 수 있습니다. 닫기 setDismissalId() 메서드를 동기화합니다. setDismissalId() 메서드를 호출할 때 각 알림에 전역적으로 고유 ID를 문자열로서 전달합니다. 알림이 닫히면, 시계 및 연결된 스마트폰에서 동일한 닫기 ID가 있는 다른 모든 알림도 닫힙니다. 닫기 ID를 검색하려면 getDismissalId()를 사용합니다.

웨어러블 전용 작업 지정

시계와 스마트폰에서 다양한 작업을 실행하려면 WearableExtender.addAction()을 사용합니다. 이 메서드로 작업을 추가하면 웨어러블에는 NotificationCompat.Builder.addAction()으로 추가된 다른 작업이 표시되지 않습니다. WearableExtender.addAction()으로 추가된 작업은 웨어러블에만 표시되고 스마트폰에는 표시되지 않습니다.