건강 관리 서비스로 센서 데이터 시뮬레이션

Wear OS의 건강 관리 서비스에서 생성된 합성 데이터를 사용하여 마치 앱을 테스트하듯 운동이 실제로 일어나고 있었습니다.

Wear OS 3 (API 수준 30) 이상을 실행하는 에뮬레이터에서 테스트하는 경우 에뮬레이터가 생성한 합성 데이터를 사용할 수 있습니다. 다음을 참고하세요. AI 기반 AI 생성 모델 간의 차이점에 대해 Wear OS 3 이상

Wear OS 4 이상에서 합성 데이터 사용

Wear OS 4 (API 수준 33) 이상을 실행하는 에뮬레이터에서 테스트하는 경우 에뮬레이터가 생성한 합성 데이터를 사용하여 앱을 테스트할 수 있습니다. 이 에서는 합성 데이터가 생성되는 방식에 대한 여러 개선사항을 도입합니다. 이전 버전의 Wear OS에서 다음 단계를 따르세요.

를 통해 개인정보처리방침을 정의할 수 있습니다.

건강 관리 서비스 센서 패널 사용

Android 스튜디오 Koala 기능 출시 (Canary)에는 Wear OS 센서 패널의 건강 관리 서비스 패널을 사용하여 기기에 특정 센서 기능이 있거나 없는 것이 중요한데, Wear OS에서 피트니스 앱을 빌드할 때 테스트하는 것이 좋습니다

또한 패널을 사용하여 측정항목 값을 변경하고 자동으로 조정됩니다.

패널을 열고 사용하려면 다음 단계를 따르세요.

  1. Android Virtual Device (AVD) 만들기 또는 열기 에뮬레이터에서 앱을 실행합니다.
  2. 에뮬레이터 패널에서 Wear Health Services를 선택합니다. Wear 건강 관리 서비스 패널 열기 Wear Health Services 패널 열리고 다양한 기기에서 사용 가능한 센서 목록이 Android 구동 기기

패널이 열리면 다음 작업을 수행할 수 있습니다.

  • 표준 기능 간에 전환합니다. 모든 기능 (기본값) 또는 커스텀 Apply를 선택하여 최신 기능 목록을 에뮬레이션하고 재설정을 선택하여 기능 목록을 기본값 on-off 값으로 복원합니다.
  • 이벤트 트리거를 선택한 후 다양한 사용자 이벤트 트리거 드롭다운 버튼을 클릭합니다. 여기에서 피트니스 자동 일시중지/재개를 트리거할 수 있습니다. 사용자의 수면 이벤트 트리거, 골프 샷 트리거 사용자가 골프 코스 또는 미니 골프 코스에서 하는 콘텐츠를 말합니다.
  • 설치된 앱에서 운동을 시작한 후 센서 값 재정의 를 클릭합니다. 다양한 운동 지표에 새 값을 입력한 후 Apply를 선택하여 이 값을 에뮬레이터와 동기화합니다. 이는 앱이 다양한 운동 조건과 사용자의 동작을 처리하는 방식 테스트 피트니스 .

에뮬레이터로 합성 데이터 생성

또한 센서 패널 없이 앱을 실행하고 데이터를 에뮬레이터에 의해 자동으로 생성됩니다.

인앱 컨트롤을 사용하여 합성 데이터 생성을 시작, 일시중지, 종료합니다.

또한 에뮬레이터는 각 운동에 대해 동일한 데이터 값을 생성합니다.

이벤트 시뮬레이션

에뮬레이터에서 AUTO_PAUSE_DETECTED와 같은 다양한 이벤트를 시뮬레이션할 수 있습니다. 다음 명령어를 사용하여 이러한 이벤트를 트리거할 수 있습니다.

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

합성 이벤트

이벤트

자동 일시중지 감지됨

whs.AUTO_PAUSE_DETECTED

자동 다시 시작 감지됨

whs.AUTO_RESUME_DETECTED

넘어짐 감지

whs.FALL_OVER

수면 감지됨

whs.START_SLEEPING

수면 중지가 감지됨

whs.STOP_SLEEPING

골프 샷 감지됨

whs.GOLF_SHOT

예를 들어 다음 명령어를 사용하여 자동 일시중지 이벤트를 트리거할 수 있습니다.

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

골프 샷 이벤트의 경우 골프 샷 스윙 유형에 대한 추가 매개변수를 지정해야 합니다. 아래에 요약되어 있습니다.

골프 샷 스윙 유형

매개변수

스윙 퍼트 유형

퍼트

그네 부분 유형

부분적

스윙 풀 타입

최고 밝기

골프 샷 이벤트를 지정한 후에 골프 샷 스윙 유형을 추가합니다.

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

예를 들어 다음 명령어는 부분 골프 샷을 트리거합니다.

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

Wear OS 3에서 합성 데이터 사용

Wear OS 3을 실행하는 에뮬레이터에서 테스트하는 경우 합성 애플리케이션을 사용할 수도 있습니다. 데이터를 사용하여 앱을 테스트할 수 있습니다.

합성 데이터 생성 사용 설정

Wear OS 3에서 합성 데이터 생성을 사용 설정하려면 다음 단계를 완료하세요.

  1. 개발자 옵션을 사용 설정합니다.
  2. 다음 adb 명령어를 실행하여 합성 모드를 사용 설정합니다.

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

합성 데이터 생성이 사용 설정되면 이 문서에 설명된 명령어를 실행합니다. 페이지를 사용하여 '합성 사용자'의 동작을 제어합니다.

합성 데이터 생성 사용 중지

실제 센서를 사용하도록 다시 전환하려면 다음 명령어를 실행합니다.

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

합성 운동

건강 관리 서비스는 다음과 같은 운동 유형을 지원합니다.

  • 걷기: whs.synthetic.user.START_WALKING
  • 달리기: whs.synthetic.user.START_RUNNING
  • 하이킹: whs.synthetic.user.START_HIKING
  • 수영: whs.synthetic.user.START_SWIMMING
  • 러닝머신에서 달리기: whs.synthetic.user.START_RUNNING_TREADMILL

운동은 다음 데이터 유형에 맞는 실제적인 합성 데이터를 생성합니다.

  • 심박수
  • 분당 걸음 수
  • GPS 위치(단일 기본 경로 사용)
  • 활동 지속 시간
  • 고도 및 층수

또한 다음과 같은 상태를 생성할 수 있습니다.

  • 수면 상태(잠든 상태 또는 깨어 있는 상태)
  • 넘어짐 감지

시작

운동 시뮬레이션을 시작하려면 com.google.android.wearable.healthservices에 적절한 브로드캐스트를 실행합니다.

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

각 활동에는 지원되는 측정항목에 관한 미리 설정된 항목이 있습니다.

활동 심박수 평균 속도 고도 변경 위치 사용
걷기 120bpm 1.4m/sec 20.0m/min true
달리기 170bpm 2.3m/sec 20.0m/min true
하이킹 150bpm 1.3m/sec 20.0m/min true
수영 150bpm 1.6m/sec 0.0m/min true
러닝머신에서 달리기 160bpm 2.3m/sec 20.0m/min false

중지

합성 활동을 중지하려면 다음 명령어를 사용합니다.

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

맞춤

생성되는 측정항목을 보다 정밀하게 제어하려면 활동 문자열 whs.synthetic.user.START_EXERCISE를 사용하여 맞춤 운동 활동을 시작합니다. 다음 플래그의 조합을 제공합니다.

  • --ei exercise_options_duration_secs <int>: 운동 시간(초)입니다. 기본값: 0
  • --ei exercise_options_heart_rate <int>: 분당 심박수입니다. 평균: 70
  • --ef exercise_options_average_speed <float>: 초당 평균 속도(미터)입니다. 분당 걸음 수 또는 주기에도 영향을 줍니다. 기본값: 0
  • --ez exercise_options_use_location <boolean>: 운동 중에 위치 데이터를 내보낼지 여부(기본 경로 사용)입니다. 기본값: false
  • --ef exercise_options_max_elevation_rate <float>: 분당 최대 가능 고도 변화율(미터)입니다. 기본값: 0

예를 들어 다음과 같은 방법으로 운동 옵션을 설정합니다.

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

실제 하드웨어나 에뮬레이션된 하드웨어가 특정 데이터 유형을 지원하는지와 관계없이 사용 가능한 데이터 유형을 변경할 수도 있습니다. 예를 들어, 다음 스니펫과 같이 절대 고도를 사용 설정하거나 중지할 수 있습니다.

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

기타 상태 및 이벤트

수면 상태

합성 사용자의 수면 상태를 트리거할 수도 있습니다. 잠든 상태와 깨어 있는 상태, 두 가지 상태가 지원됩니다.

잠든 상태로 전환하려면 다음 명령어를 실행합니다.

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

깨어 있는 상태로 전환하려면 다음 명령어를 실행합니다.

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

넘어짐 감지

넘어지는 동작을 시뮬레이션하려면 다음 명령어를 실행합니다.

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

건강 관리 서비스에서 넘어짐 이벤트가 전송되는 데는 최대 1분이 걸릴 수 있습니다.