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를 통해 중복 알림을 중지하는 방법을 제공합니다. 자세한 내용은 알림 브리징 옵션을 참고하세요.

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

알림에 웨어러블 관련 기능(예: 웨어러블 알림에서 앱 아이콘 숨기기 또는 사용자가 음성 입력으로 텍스트 응답을 지정하도록 허용)을 추가해야 하는 경우 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()으로 추가된 작업은 웨어러블에만 표시되고 스마트폰에는 표시되지 않습니다.