중국용 Wear OS 앱 만들기

중국용 Wear OS 앱을 만드는 경우 Google Play 서비스가 사전 설치되지 않은 핸드셋을 고려해야 합니다. 이 페이지에는 개발자가 중국 시장에 맞게 채택해야 할 수도 있는 공통 변경사항이 포함되어 있습니다.

올바른 버전의 Google Play 서비스 사용

Google Play 서비스 버전 10.2.0에서는 Fused Location Provider API Data Layer API에 관한 전 세계적인 지원을 제공합니다. 이러한 API를 사용하여 중국에서 다양한 Wear OS 기기를 지원하려면 이 버전의 Google Play 서비스를 사용해야 합니다. 다른 경우에는 이 종속 항목이 선택사항입니다.

참고: Google Play 서비스에 Wear OS 앱용 API가 포함되어 있기는 하지만 중국용 Wear OS 앱은 GoogleApiClient와 관련된 API를 계속 사용해야 합니다. Wearable API 액세스를 참고하세요.

Fused Location Provider API

Fused Location Provider API를 사용하는 경우 Wear OS 모듈의 build.gradle 파일에 다음 종속 항목을 포함하세요.

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

Data Layer API

앱이 Data Layer API를 사용하는 경우 Wear OS 모듈의 build.gradle 파일에 다음 줄을 추가해야 합니다. 이 줄이 실행되려면 클라이언트 라이브러리 10.2.0 버전을 사용해야 합니다.

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

모바일 모듈의 build.gradle 파일에 다음 줄을 추가합니다. Google Play 서비스 종속 항목을 10.2.0 버전 참조로 대체합니다.

Groovy

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

인증

인증을 구현하기 전에 사용 사례를 검토하여 인증이 실제로 필요한지 확인합니다. 예를 들어 일기 예보를 제공하는 앱의 경우 로그인할 필요가 없으므로 인증을 받을 필요도 없습니다.

인증이 필요하다면 AndroidX Oauth 라이브러리를 사용하는 것이 좋습니다. 이를 위해서는 PKCE를 통한 승인 코드 부여 흐름을 사용해야 합니다. 웨어러블 기기에서 인증에 설명된 다른 방법 중 하나를 사용할 수도 있습니다. 웨어러블 지원 라이브러리는 사용하지 않는 것이 좋습니다.

자세한 내용은 GitHub의 Wear OS OAuth 샘플을 참고하세요.

브리지된 알림

브리지된 알림은 중국에서 지원되지 않습니다. Wear OS 기기가 블루투스를 통해 휴대전화에 연결된 경우에만 휴대전화 알림이 Wear OS에 브리지됩니다.

위치 및 매핑 좌표 호환성

다른 국가와 마찬가지로 중국에서도 FusedLocationProvider(FLP)를 사용하여 사용자 위치를 감지합니다. 이렇게 하면 앱이 시계 하드웨어 및 시계가 페어링된 휴대전화 플랫폼에 관계없이 최상의 정보를 고려하게 됩니다. FLP를 사용하면 Wear OS 플랫폼에 내장된 배터리 최적화도 추가됩니다.

FusedLocationProvider를 서드 파티 지도 SDK와 통합하는 경우 제공자 간의 좌표 호환성을 고려하세요. FusedLocationProviderWGS84 표준에 따라 위치를 보고합니다. 좌표계를 적절하게 변환하세요.

Google 피트니스 지원

Google 피트니스의 누적 걸음 수 카운터, 운동 시간 및 심장 강화 점수가 중국에서 지원되며, 최대 7일간 기록이 유지됩니다. 사용자 인증 정보를 제공하지 않고 액세스할 수 있습니다.

음성 작업 지원

Wear OS 플랫폼은 '심박수 표시' 또는 '알람 설정'과 같은 사용자 작업에 기반하는 여러 음성 인텐트를 제공합니다. 이 때문에 사용자가 실행하려는 작업을 말하면 시스템은 시작할 최상의 활동을 파악할 수 있습니다.

사용자가 음성 작업을 말하면, 앱은 실행된 인텐트를 필터링하여 활동을 시작할 수 있습니다. 백그라운드에서 서비스를 시작하려면 활동을 시각적 신호로 표시하고 활동에서 서비스를 시작합니다. 시각적 신호를 삭제하려면 finish()를 호출해야 합니다.

다음은 Wear OS 플랫폼에서 지원하는 음성 인텐트 목록입니다.

카테고리 인텐트 사양
차량 호출 打车去三里屯 조치

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

추가 항목

to: 인식된 대상

추가 항목은 선택사항입니다.

알람 설정 设置一个明早七点的闹钟 조치

android.intent.action.SET_ALARM

추가 항목

android.provider.AlarmClock.EXTRA_HOUR: 알람 시간(시)이 포함된 정수

android.provider.AlarmClock.EXTRA_MINUTES: 알람 시간(분)이 포함된 정수

이러한 추가 항목은 선택사항입니다. 이러한 추가 항목을 모두 제공하거나 모두 제공하지 마세요.

타이머 설정 设置一个三分钟的倒计时 조치

android.intent.action.SET_TIMER

추가 항목

android.provider.AlarmClock.EXTRA_LENGTH: 타이머 길이를 나타내는 1에서 86,400(24시간을 초로 환산한 수) 사이의 정수

스톱워치 시작 开始计时 조치

com.google.android.wearable.action.STOPWATCH

자전거 타기 시작 또는 중지 开始骑车 조치

vnd.google.fitness.TRACK

MIME 유형

vnd.google.fitness.activity/biking

추가 항목

actionStatus: 시작할 때는 ActiveActionStatus 값, 중지할 때는 CompletedActionStatus 값이 포함된 문자열

달리기 시작 또는 중지 开始跑步 조치

vnd.google.fitness.TRACK

MIME 유형

vnd.google.fitness.activity/running

추가 항목

actionStatus: 시작할 때는 ActiveActionStatus 값, 중지할 때는 CompletedActionStatus 값이 포함된 문자열

운동 시작 또는 중지 开始锻炼 조치

vnd.google.fitness.TRACK

MIME 유형

vnd.google.fitness.activity/other

추가 항목

actionStatus: 시작할 때는 ActiveActionStatus 값, 중지할 때는 CompletedActionStatus 값이 포함된 문자열

심박수 표시 查看心率 조치

vnd.google.fitness.VIEW

MIME 유형

vnd.google.fitness.data_type/com.google.heart_rate.bpm

걸음 수 표시 查看步数 조치

vnd.google.fitness.VIEW

MIME 유형

vnd.google.fitness.data_type/com.google.step_count.cumulative

탐색 导航去三里屯 조치

android.intent.action.VIEW

데이터

geo:latitude,longitude?q=融科资讯中心

음성 어시스턴트는 기존 Android 일반 인텐트를 사용하여 특정 동작을 트리거할 수도 있습니다(해당하는 경우).

에뮬레이터 지원

Wear OS 에뮬레이터 이미지의 중국 버전을 사용하여 앱을 테스트할 수 있습니다. 이 기능은 Android 스튜디오 3.0 이상에서 지원됩니다.

중국 버전의 에뮬레이터에서 앱을 테스트하려면 다음 단계를 따르세요.

  1. Android Emulator를 설치합니다.
  2. SDK Manager에서 중국용 Wear OS 이미지를 다운로드합니다. Wear OS 3.5(API 수준 30) 버전을 사용하세요.
  3. AVD 프로필을 만들 때 중국용 Wear OS 이미지를 선택합니다.
  4. 개발을 위한 중국용 Wear OS 에뮬레이터를 실행합니다.
  5. 그림 1. 중국 버전의 Wear OS 에뮬레이터 예

이 버전의 Wear OS 에뮬레이터에는 사전 설치된 여러 앱이 포함되어 있습니다.

  • 대기 모드
  • 연락처
  • Google 필기 입력
  • Google Play 서비스
  • Wear OS용 건강 관리 서비스
  • 저전력 기기용 핫워드 인식
  • 병음
  • Play 스토어(중국 기기에 맞춰 조정됨)
  • 포켓워치
  • TalkBack
  • 시계 화면(아날로그와 디지털 버전 모두)
  • Wear 핵심 서비스

앱 관련 블루투스 및 Wi-Fi 채널 시작

Wear OS는 네트워크 요청을 자동으로 라우팅합니다. 대부분의 경우 앱이 앱 관련 블루투스 및 Wi-Fi 채널을 열지 않아도 됩니다.

중국에서 앱이 앱 관련 블루투스 및 Wi-Fi 채널을 요청하는 경우 요청이 자동으로 실패합니다. 대신 사용자에게 확인을 요청하는 대화상자가 표시됩니다. 사용자가 확인하면 채널이 열립니다. 이 동작은 처음 사용할 때뿐만 아니라 매번 발생합니다. BluetoothAdapter.enable() 또는 WifiManager.setEnabled(true)가 호출됩니다.

참고: Android 10(API 수준 29) 이상을 타겟팅하는 앱에서 WifiManager.setEnabled()를 호출하려면 앱이 시스템 앱이거나 기기 정책 컨트롤러(DPC)여야 합니다.

권한 검토 모드

중국에서는 중국용 Wear OS 기기가 권한 검토 모드로 실행되므로 targetApiLevel이 23 미만인 앱을 사용하는 방법에 몇 가지 제한이 적용됩니다. 다음 제한사항을 검토하세요.

  • 설치 시 권한을 부여한 경우에도 targetApiLevel이 23 미만인 앱을 처음 시작하면 사용자에게 이 앱의 권한 확인을 요청하는 대화상자가 나타납니다.
  • broadcast receiver, 서비스, 활동과 같은 앱의 구성요소가 앱이 처음 사용되기 전에 상응하는 이벤트에 응답하지 않습니다.

따라서 targetApiLevel 23 이상을 사용하고 앱 권한 권장사항을 채택하는 것이 좋습니다.

다른 Google Play 서비스 API 사용

Wearable API 이외의 Google Play 서비스 API를 사용하는 앱은 런타임 중에 이 API를 사용할 수 있는지 확인하고 적절하게 응답해야 합니다. 다음 두 가지 방법으로 Google Play 서비스 API의 가용성을 확인할 수 있습니다.

  1. 기타 API에 연결하는 데는 별도의 GoogleApiClient 인스턴스를 사용합니다. 이 인터페이스에는 연결의 성공 또는 실패를 앱에 알리는 콜백이 포함되어 있습니다. 연결에 실패하면 ConnectionResult API_UNAVAILABLE이 표시됩니다. 연결 실패를 처리하는 방법은 Google API 액세스를 참고하세요.
  2. GoogleApiClient.BuilderaddApiIfAvailable() 메서드를 사용하여 필수 API에 연결합니다. onConnected() 콜백이 실행되면 hasConnectedApi() 메서드를 사용하여 각각의 요청된 API가 올바르게 연결되었는지 확인합니다.

중국에서 앱 배포

중국용 Wear OS 사용자에게 효과적으로 도달하려면 다음과 같은 서드 파티 Wear OS 앱 스토어를 통해 배포하면 됩니다.