Google 피트니스는 com.google
네임스페이스에서 일련의 건강 및 웰빙 데이터 유형을 제공합니다.
데이터 유형은 데이터 포인트 내부의 값 형식을 정의합니다. 데이터 포인트는 다음을 나타낼 수 있습니다.
- 즉각적인 읽기 또는 관찰
- 시간 경과에 따른 통계 집계
Google 피트니스는 즉각적인 관찰을 위한 데이터 유형과 집계 데이터를 위한 데이터 유형을 정의합니다. 데이터 포인트는 데이터 유형의 필드 값과 타임스탬프 정보로 구성됩니다. 즉각적인 관찰을 나타내는 포인트에는 타임스탬프가 포함되며 집계 데이터 유형의 포인트에는 간격의 시작 시간도 포함됩니다.
Google 피트니스를 사용하면 새로운 데이터 유형을 정의할 수도 있습니다.
데이터 유형 그룹
Google 피트니스에는 다음과 같은 데이터 유형이 있습니다.
- 공개 데이터 유형
- 플랫폼에서 제공하는 표준 데이터 유형에는 접두사 '&'가 포함됩니다. 예: com.google.step_count.delta 이러한 데이터 유형은 피트니스 활동, 수면 및 영양을 비롯하여 건강 및 웰빙 데이터에 대한 즉각적인 해석을 캡처합니다. 모든 앱에서 이러한 데이터 유형을 읽고 쓸 수 있는 관련 권한을 요청할 수 있습니다. 단, 이러한 데이터를 작성한 앱에서만 읽을 수 있는 위치 데이터 유형은 예외입니다.
자세한 내용은 다음을 참고하세요.
- 건강 데이터 유형
- 플랫폼에서 제공하는 데이터 유형으로, 민감할 수 있는 데이터로 인해 액세스가 제한되었습니다. 자세한 내용은 상태 데이터 유형을 참조하세요.
- 합산 데이터 유형
- 시간 또는 활동 유형별로 집계된 건강 및 웰빙 정보를 읽는 데이터 유형입니다. 자세한 내용은 데이터 유형 집계를 참조하세요.
- 비공개 맞춤 데이터 유형
- 특정 앱으로 정의된 커스텀 데이터 유형입니다. 데이터 유형을 정의하는 앱만 이 유형의 데이터를 읽고 쓸 수 있습니다. 자세한 내용은 커스텀 데이터 유형을 참조하세요.
데이터 유형 사용
Android
Android에서는 데이터 유형이 DataType
클래스의 공개 필드로 정의됩니다. 데이터 유형으로 피트니스 API를 호출하는 방법은 달성하려는 목표에 따라 다릅니다.
- 데이터를 기록하려면 Recording API를 사용하여 기록하려는 각 데이터 유형의 정기 결제를 만듭니다.
- 데이터를 읽으려면 History API를 사용하여 각 데이터 유형에 대한 읽기 요청을 제출합니다.
- 과거의 과거 데이터를 삽입하려면 History API를 사용하여 각 데이터 유형의 삽입 요청을 제출합니다.
- 세션을 만들려면 Sessions API를 사용하여 세션 메타데이터로 데이터를 삽입하거나 기록하세요.
중요한 DataType
객체의 데이터 포인트를 만들려면 올바른 형식으로 값을 할당하세요. 다음 예는 음식 항목을 문자열로 할당하고, 식사 유형을 Field
클래스의 상수로, 영양 콘텐츠를 매핑된 부동 소수점 값으로 할당하는 방법을 보여줍니다.
val nutritionSource = DataSource.Builder() .setDataType(DataType.TYPE_NUTRITION) ... .build() val nutrients = mapOf( Field.NUTRIENT_TOTAL_FAT to 0.4f, Field.NUTRIENT_SODIUM to 1f, Field.NUTRIENT_POTASSIUM to 422f ) val banana = DataPoint.builder(nutritionSource) .setTimestamp(now, TimeUnit.MILLISECONDS) .setField(Field.FIELD_FOOD_ITEM, "banana") .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK) .setField(Field.FIELD_NUTRIENTS, nutrients) .build()
앱에 데이터 포인트를 설정한 후 History API를 사용하여 이전 데이터를 삽입하거나 읽거나 삭제할 수 있습니다.
REST
dataSources
리소스에는 각 데이터 소스의 데이터 유형 및 필드 목록이 포함됩니다. 데이터 소스를 만들 때 이러한 데이터 유형 중 하나를 지정할 수 있고, 피트니스 저장소에서 데이터 소스를 가져올 때 데이터 유형의 이름과 필드 목록을 가져올 수 있습니다.
예를 들어 데이터 소스 표현은 다음과 같이 데이터 유형을 지정합니다.
{ "dataStreamId": "exampleDataSourceId", ... "dataType": { "name": "com.google.step_count.delta" }, ... }
승인 범위
승인 범위는 사용자가 앱에 액세스하도록 승인할 수 있는 데이터 유형 그룹을 다룹니다. 사용자가 앱에서 어떤 종류의 데이터에 액세스하려고 하는지 파악하는 데 도움이 됩니다. 또한 각 개별 데이터 유형을 승인하지 않고도 앱에 데이터 사용 권한을 더 쉽게 부여할 수 있습니다. 사용자는 앱을 다운로드한 후 이러한 권한을 부여합니다.

적은 수의 사용자를 대상으로 앱을 테스트한 후 앱을 출시하기 전에 이러한 데이터 유형과 관련된 범위를 기반으로 인증을 요청해야 합니다. 위에 링크된 데이터 유형 페이지를 읽고 각 데이터 유형에 적용되는 범위를 알아보세요.
예를 들어 앱에서 혈압 쓰기를 읽고 써야 하는 경우 앱에서 읽기와 쓰기를 모두 선언하고 두 범위를 모두 요청해야 합니다. Google 피트니스 플랫폼에 혈압 데이터만 쓰는 경우 쓰기 범위만 요청하면 됩니다.
책임감 있는 데이터 유형 선택 앱에서 필요할 수도 있는 모든 데이터 유형을 요청하지 마세요. 지정된 유형에 따라 사용자에게 권한을 부여하라는 메시지가 표시되는 범위가 결정됩니다. 사용자가 액세스 권한을 부여할 가능성이 높도록 앱에 필요한 데이터 유형만 요청하세요. 사용자가 명확하고 제한된 범위에 대한 액세스 권한을 더 쉽게 부여합니다.
이 표를 통해 앱에서 액세스해야 하는 범위가 민감하거나 제한되는지 확인합니다. 이 범위는 개발자가 따라야 하는 확인 단계를 결정합니다.
범위 | 설명 | 카테고리 |
---|---|---|
https://www.googleapis.com/auth/fitness.activity.read |
Google 피트니스 플랫폼에서 활동 데이터 읽기 | 제한됨 |
https://www.googleapis.com/auth/fitness.activity.write |
Google 피트니스 플랫폼에 활동 데이터 쓰기 | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.blood_glucose.read |
Google 피트니스 플랫폼에서 혈당 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.blood_glucose.write |
Google 피트니스 플랫폼에 혈당 데이터를 작성합니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.blood_pressure.read |
Google 피트니스 플랫폼에서 혈압 데이터 읽기 | 제한됨 |
https://www.googleapis.com/auth/fitness.blood_pressure.write |
Google 피트니스 플랫폼에 혈압 데이터를 작성합니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.body.read |
Google 피트니스 플랫폼에서 신체 측정 데이터 (키, 체중, 체지방률)를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.body.write |
Google 피트니스 플랫폼에 신체 측정 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.body_temperature.read |
Google 피트니스 플랫폼에서 체온 데이터 읽기 | 제한됨 |
https://www.googleapis.com/auth/fitness.body_temperature.write |
Google 피트니스 플랫폼에 체온 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.heart_rate.read |
Google 피트니스 플랫폼에서 심박수 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.heart_rate.write |
Google 피트니스 플랫폼에 심박수 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.location.read |
Google 피트니스 플랫폼에서 위치 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.location.write |
Google 피트니스 플랫폼에 위치 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.nutrition.read |
Google 피트니스 플랫폼의 영양 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.nutrition.write |
Google 피트니스 플랫폼에 영양 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.oxygen_saturation.read |
Google 피트니스 플랫폼에서 산소 포화도 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.oxygen_saturation.write |
Google 피트니스 플랫폼에 산소 포화도 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.reproductive_health.read |
Google 피트니스 플랫폼에서 생식계 건강 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.reproductive_health.write |
Google 피트니스 플랫폼에 생식 건강 데이터를 씁니다. | 민감한 콘텐츠 |
https://www.googleapis.com/auth/fitness.sleep.read |
Google 피트니스 플랫폼에서 수면 데이터를 읽습니다. | 제한됨 |
https://www.googleapis.com/auth/fitness.sleep.write |
Google 피트니스 플랫폼에 수면 데이터를 씁니다. | 민감한 콘텐츠 |
기존 앱에 새 범위 추가
새 범위를 요청하도록 앱을 업데이트할 때 (예: 새 수면 또는 심박수 범위를 추가하거나 읽기 범위 추가) 사용자에게 이러한 범위에 대한 액세스 권한을 요청한다는 메시지가 표시되고 액세스 권한을 부여하거나 거부할 수 있습니다.
필요할 때 사용자에게 리소스에 대한 승인을 요청하는 것이 좋습니다. 증분 승인 요청에 관한 가이드라인을 따릅니다.
사용자가 앱에서 이 데이터를 사용하는 이유/방법을 이해하면 액세스 권한을 부여할 가능성이 높아집니다.
- 사용자에게 이러한 범위를 묻는 메시지가 표시되거나 경고하는 화면을 추가하는 것이 좋습니다.
- 사용자가 충분한 정보를 바탕으로 결정을 내릴 수 있도록 앱에서 이러한 범위/데이터 액세스를 요청하는 이유를 명확하게 설명합니다.
Android의 앱 권한 권장사항을 자세히 알아보세요.