공부/Android

[Wear] Health Service 정리

데자와 맛있다 2023. 8. 22. 17:39

이번 프로젝트에서 갤럭시 워치에서 헬스 데이터를 가져와 사용해야 하는 일이 있어 자료 조사중이다

그냥 눈으로만 보면 기억도 안날것같아서 이렇게 정리해본다

 

아래의 블로그 글에 따르면...(파파고 번역돌렸습니다^^ 아.. 어학 자격증 새로 따야되는데..)

https://android-developers.googleblog.com/2023/05/whats-new-in-android-health.html

 

What’s new in Android Health

We’re announcing key updates to our Android Health offerings across both Health Connect and Health Services for app developers and users.

android-developers.googleblog.com

안드로이드 Health? 

- 건강 및 피트니스 앱을 사용자에게 제공하기 위해 Health connect, Health Services 라는 두 플랫폼을 통합한것

 

Health Connect?

-안드로이드 앱 간 건강, 피트니스 데이터를 저장하고 공유하기 위한 api를 제공하는 

on device(휴대폰 내에 데이터 저장된다는 의미인듯) 데이터 저장소이다

-헬스커넥트 이전에는 개발자가 안드로이드 앱 간 헬스 데이터를 공유하는 일관된 방법이 없었다

-이제 헬스 커넥트로 단편화가 줄어든다 헬스커넥트는 일관된 40개 이상의 데이터 유형 집합과 사용자가 

데이터 권한을 제어할수있는 단일 권한 관리 프레임워크를 제공한다

-이렇게 서로 다른 앱에서 헬스 커넥트를 사용해서 데이터 공유를 할수있다

-현재 (글 작성 당시 2023년 5월 10일)헬스 커넥트를 플레이스토어에서 다운로드 가능

-안드로이드 14를 2023년에 릴리즈하는데 14버전을 시작으로 헬스커넥트가 안드로이드

핵심 부분이 될 것이다

-안드로이드 14 릴리즈와 함께 헬스 커넥트에 새로운 기능으로 운동지도 공유, 생리주기 기록개선

 

Health Connect와 Health Platform의 차이점

-health connect는 최근에 새로 나온애 health platform이 원래 있었는데 헬스 커넥트가 나오면서 지원 중단되었다

-health platform은 일부 삼성 기기만 지원된다

 

Health Service?

-Wear os 기기 센서 데이터에 전력 효율적인 방식으로 엑세스하는 api이다

-헬스 서비스 이전에는 개발자가 직접 low level센서에 접근해야 했고 이는 각기 다른 기기에 

다른 방식으로 접근해야 했으며 배터리 효율도 좋지 않았음(어머..세상에..)

-헬스 서비스의 사용으로 Wear os 3 이상 장치에 일관된 api가 제공되므로 개발자는

각기 다른기기에 하나하나 다른 코드를 적을 필요없이 모든 장치에 하나의 코드로 

서비스를 제공할수있다, 또한 health service 아키텍쳐를 사용하면 개발자는

프로세스에서 전력을 아낄수있어 더 긴 워크아웃(?운동)을 추적할수있다

-새로운 api로 배치 모드 기능 추가, 심박수 데이터 전달 빈도를 조정할 수 있게한다, 골프샷 감지 api추가

 

 

Health Service에서 제공하는 데이터 유형

크게 두가지로 나뉜다

https://developer.android.com/reference/kotlin/androidx/health/services/client/data/DataType

 

DataType  |  Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com

1. 단일 시점에 샘플링된 데이터

2. 시간 간격을 두고 수집된 데이터

 

-고도

-칼로리

-하루동안 소모한 총 칼로리

-이동거리

-하루동안 총 이동거리

-계단 오른 수? (FLOORS)

-심박수

-위경도

-속도

대강 이정도

 

Health Service 이벤트

사용자가 특정 목표, 상태, 이벤트에 도달할때 이벤트를 수신한다

운동 목표를 달성할때마다 이벤트가 발생되도록 하는것같음

이걸로 걷기 달성되면 이벤트 발생시키고 서버로 값 전달하면 되나?

https://developer.android.com/reference/kotlin/androidx/health/services/client/data/ExerciseGoal

 

ExerciseGoal  |  Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com

https://developer.android.com/reference/kotlin/androidx/health/services/client/data/PassiveGoal

 

PassiveGoal  |  Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com

https://developer.samsung.com/health/blog/en-us/2022/01/18/diving-into-the-client-types-in-health-services

 

Diving into the Client Types in Health Services | Samsung Developers

The world runs on you.

developer.samsung.com