The Android Developer Challenge is back! Submit your idea before December 2.

시계 모드 정보 표시

정보 표시란 시간과 함께 표시되는 시계 모드의 모든 기능을 말합니다. 예를 들어, 배터리 표시기는 정보 표시입니다. Complications API는 시계 모드 및 데이터 제공자 앱에 모두 사용됩니다.

이 문서의 나머지 부분에서는 데이터 제공자, 시계 모드 및 정보 표시 유형에 관해 설명합니다.

정보 표시 데이터 제공자

정보 표시를 위해 데이터(예: 배터리 수준, 날씨 또는 걸음 수 데이터)를 시계 모드에 제공하는 앱을 '정보 표시 데이터 제공자'라고 부릅니다. 이러한 데이터 제공자는 원시 데이터를 제공하지만, 이 데이터가 시계 모드에서 렌더링되는 방식은 제어하지 않습니다. 시계 모드에 데이터를 제공하는 앱을 작성하려면 데이터를 정보 표시에 노출을 참조하세요.

아래 다이어그램에 나타난 것처럼 Wear OS by Google은 제공자에서 시계 모드로의 데이터 흐름을 조정합니다.

정보 표시 데이터 흐름

시계 모드의 정보 표시

시계 모드는 정보 표시 데이터 제공자로부터 데이터를 수신하므로 기본 데이터를 가져오기 위한 코드가 없어도 시계 모드에 정보 표시를 포함할 수 있습니다. 시계 모드는 데이터가 렌더링되는 방식을 제어하므로 데이터와 디자인이 자연스럽게 어울리도록 통합할 수 있습니다. 정보 표시를 위한 디자인 패턴을 참조하세요.

정보 표시를 시계 모드에 추가하는 방법을 알아보려면 정보 표시를 시계 모드에 추가를 참조하세요.

정보 표시 유형

정보 표시 유형은 어떤 종류의 데이터가 정보 표시에 나타날 수 있는지 또는 데이터 제공자에 의해 제공될 수 있는지를 정의합니다. 예를 들어, SHORT_TEXT 유형은 데이터가 주로 짧은 문자열로 구성된 경우에 사용됩니다. 언제나 ComplicationData 객체에는 필수 필드와 선택적 필드를 정의하는 하나의 정보 표시 유형이 있습니다. 일반적으로 필수 필드는 데이터의 주요 부분을 나타내며, 대부분의 유형은 그 이름을 필수 필드에서 가져옵니다.

데이터 제공자는 시계 모드와는 다른 방식으로 이 정보 표시 유형을 사용합니다.

  • 데이터 제공자는 제공하려는 정보 표시 데이터의 유형(이 유형 중에서 어떤 선택적 필드를 제공할지 포함) 및 지원할 수 있는 다양한 유형의 개수를 선택합니다. 예를 들어, 걸음 수 제공자는 RANGED_VALUE 및 SHORT_TEXT 유형을 지원할 수도 있는 반면, '다음 미팅' 제공자는 SHORT_TEXT 및 LONG_TEXT 유형을 지원할 수도 있습니다.
  • 자신의 시계 모드에 포함할 정보 표시 개수와 지원하려는 정보 표시 유형을 선택할 수 있습니다. 예를 들어, 시계 모드의 다이얼 정보 표시는 SHORT_TEXT, ICON 및 RANGED_VALUE 유형을 지원할 수도 있는 반면, 시계 모드의 게이지는 RANGED_VALUE 유형만을 지원할 수도 있습니다.

각 유형이 지원하는 다양한 정보 표시 유형과 필드에 관해 자세히 알아보려면 정보 표시 유형 사용 및 테스트를 참조하세요.

API 요약

다음은 Complications API의 요약 내용입니다. API는 웨어러블 지원 라이브러리의 일부입니다. Wear API 참조를 참조하세요.

  • ComplicationData
    • (내부적으로 번들을 사용하여) 전달 가능; 변경 불가능
    • 모든 유형의 정보 표시 데이터를 나타냅니다.
    • 인스턴스 생성용 빌더를 포함합니다.
  • ComplicationDrawable
    • 전체 정보 표시를 캔버스에 렌더링할 수 있습니다.
  • ComplicationHelperActivity
    • 다음 권한을 요청하는 데 사용됩니다.
      com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
    • 거의 모든 경우에 선택기를 시작하기 위해 ProviderChooserIntent 대신 사용됩니다.
  • ComplicationManager
    • 정보 표시 관리자 서비스를 위한 래퍼이며 제공자에 의해 사용됩니다.
    • 제공자가 정보 표시 데이터를 시스템에 전송할 수 있습니다.
  • ComplicationProviderService
    • Service를 확장하며 정보 표시 시스템에 응답하는 콜백 메서드를 포함합니다.
    • 콜백 메서드는 모두 메인 스레드에서 호출됩니다.
  • ComplicationText
    • 텍스트 기반 값을 ComplicationData 객체에 제공하는 데 사용됩니다.
    • (텍스트 값이 현재 시간에 종속되는) 시간 종속 값의 옵션을 포함합니다.
  • ProviderChooserIntent
    • 인스턴스화할 수 없는 유틸리티 클래스이며 일반적으로 사용되지 않습니다. 대신 ComplicationHelperActivity를 사용하세요.
  • ProviderInfoRetriever
    • 시계 모드에 속하는 모든 정보 표시에 대한 최신 데이터 제공자 정보(앱, 제공자 이름, 아이콘)를 검색하기 위해 시계 모드 구성 활동에 의해 사용될 수 있습니다.
  • ProviderUpdateRequester
    • onComplicationUpdated 호출을 트리거하기 위해 데이터 제공자 앱에 의해 제공자 서비스에서 사용될 수 있으며, 업데이트 푸시를 사용 설정합니다.
  • SystemProviders
    • 시계 모드가 이미 스스로 획득한 정보만을 제공하기 때문에 '안전한' 것으로 간주되는 시스템 제공자를 나열합니다.
  • TextRenderer
    • 캔버스에서 텍스트를 쉽게 그릴 수 있습니다.

또한 WatchFaceService.Engine 클래스에는 다음과 같은 메서드가 포함되어 있습니다.

  • setActiveComplications()
    • 어떤 정보 표시 슬롯이 사용 가능하고 어떤 유형이 지원되는지를 ComplicationManager 객체에 알려주기 위해 시계 모드에 의해 호출되어야 합니다.
  • onComplicationDataUpdate()
    • 정보 표시 데이터를 시계 모드로 보내기 위해 ComplicationManager 객체에 의해 호출됩니다.
  • setDefaultSystemComplicationProvider()
    • 정보 표시에 대한 기본 시스템 제공자를 설정합니다. 이 메서드는 시스템 제공자의 ID(정수)를 취합니다. 사용 가능한 ID는 SystemProviders 클래스에 나열됩니다.