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

Wear OS에서 구성 활동 제공

일부 시계 모드에서는 사용자가 시계 모드의 모양과 동작 방식을 맞춤설정할 수 있는 구성 매개변수를 지원합니다. 예를 들어, 일부 시계 모드에서는 사용자가 맞춤형 배경색을 선택할 수 있으며, 다른 두 시간대의 시간을 알려주는 시계 모드에서는 사용자가 관심 있는 시간대를 선택할 수 있습니다.

다음 관련 리소스를 참조하세요.

구성 매개변수를 지원하는 시계 모드에서는 사용자가 웨어러블 앱의 활동이나 핸드헬드 앱의 활동 또는 두 활동을 모두 사용하여 시계 모드를 맞춤설정할 수 있습니다. 사용자는 웨어러블 기기에서 웨어러블 구성 활동을 시작할 수 있습니다. 또한 핸드헬드 앱(설치된 경우)에서 호환 구성 활동을 시작할 수도 있습니다.

참고: Wear 1.x에서 사용자가 웨어러블 앱이 포함된 핸드헬드 앱을 설치하는 경우 이 웨어러블 앱이 시계에 자동으로 설치됩니다. Wear 2.0에서는 웨어러블 앱이 시계에 자동으로 설치되지 않습니다. 또한 Wear 2.0에서는 핸드헬드 앱이 필수가 아닙니다. 사용하고 싶은 핸드헬드 앱이 있는 경우 별도로 설치해야 합니다.

시계 모드 샘플에 있는 디지털 시계 모드에서는 핸드헬드 및 웨어러블 구성 활동을 구현하는 방법과 구성 변경에 반응하여 시계 모드를 업데이트하는 방법을 보여줍니다.

구성 활동의 인텐트 지정

시계 모드에 구성 활동이 포함된 경우, 웨어러블 앱의 manifest 파일에 있는 서비스 선언에 다음과 같은 메타데이터 항목을 추가합니다.

    <service
        android:name=".DigitalWatchFaceService" ... />
        <!-- companion configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.companionConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        <!-- wearable configuration activity -->
        <meta-data
            android:name=
               "com.google.android.wearable.watchface.wearableConfigurationAction"
            android:value=
               "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
        ...
    </service>
    

앱의 패키지 이름이 앞에 나오는 이들 항목에 값을 제공합니다. 구성 활동은 이 인텐트에 관한 인텐트 필터를 등록하며, 시스템에서 사용자가 시계 모드를 구성하고자 할 때 이 인텐트를 실행합니다.

시계 모드에 호환 또는 웨어러블 구성 활동만 포함된 경우에는 위의 예제에서 해당 메타데이터 항목만 포함해야 합니다.

웨어러블 구성 활동 생성

작은 화면에서는 복잡한 메뉴를 탐색하기가 어렵기 때문에, 웨어러블 구성 활동은 제한된 세트의 맞춤설정 옵션을 시계 모드에 제공합니다. 웨어러블 구성 활동은 시계 모드의 주요 부분을 맞춤설정하기 위한 바이너리 옵션과 몇 가지 선택항목을 제공해야 합니다.

웨어러블 구성 활동을 생성하려면 새 활동을 웨어러블 앱 모듈에 추가하고 다음과 같은 인텐트 필터를 웨어러블 앱의 manifest 파일에서 선언합니다.

    <activity
        android:name=".DigitalWatchFaceWearableConfigActivity"
        android:label="@string/digital_config_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

이 인텐트 필터에 있는 작업의 이름은 구성 활동의 인텐트 지정에서 정의했던 인텐트 이름과 일치해야 합니다.

구성 활동에서 시계 모드를 맞춤설정하는 옵션을 사용자에게 제공하기 위한 간단한 UI를 빌드합니다. 사용자가 선택할 때 구성 변경사항을 시계 모드 활동에 전달하려면 Wearable Data Layer API를 사용합니다.

자세한 내용은 시계 모드 샘플DigitalWatchFaceWearableConfigActivityDigitalWatchFaceUtil 클래스를 참조하세요.

호환 구성 활동 만들기

큰 화면의 핸드헬드 기기에서는 복잡한 메뉴와 상호작용하는 것이 더 쉽기 때문에, 호환 구성 활동은 시계 모드의 전체 구성 옵션에 액세스할 수 있는 권한을 사용자에게 제공합니다. 예를 들어, 핸드헬드 기기에서 구성 활동을 사용할 경우 시계 모드의 배경색을 선택하기 위한 정교한 색상 선택기를 사용자에게 표시할 수 있습니다.

참고: 구성 활동은 Android가 실행 중인 핸드헬드 기기에 대해서만 작성할 수 있습니다.

호환 구성 활동을 만들려면 새 활동을 핸드헬드 앱 모듈에 추가하고 다음과 같은 인텐트 필터를 핸드헬드 앱의 manifest 파일에서 선언합니다.

    <activity
        android:name=".DigitalWatchFaceCompanionConfigActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name=
                "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
            <category android:name=
            "com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    

구성 활동에서, 시계 모드의 모든 구성 가능 요소를 맞춤설정하는 옵션을 제공하기 위한 UI를 빌드합니다. 사용자가 선택할 때 구성 변경사항을 시계 모드 활동에 전달하려면 Wearable Data Layer API를 사용합니다.

자세한 내용은 시계 모드 샘플DigitalWatchFaceCompanionConfigActivity 클래스를 참조하세요.

웨어러블 앱에서 리스너 서비스 생성

업데이트된 구성 매개변수를 구성 활동으로부터 수신하려면 웨어러블 앱의 Wearable Data Layer API로부터 WearableListenerService 인터페이스를 구현하는 서비스를 생성합니다. 구성 매개변수가 변경될 때 시계 모드 구현에서 시계 모드를 다시 그릴 수 있습니다.

자세한 내용은 시계 모드 샘플DigitalWatchFaceConfigListenerServiceDigitalWatchFaceService 클래스를 참조하세요.