세션은 사용자가 수행한 모든 주요 활동 목록을 빠르고 쉽게 확인할 수 있는 방법입니다. Google 피트니스 앱의 일지 페이지에 표시됩니다. 예를 들어 호흡 세션, 걷기, 달리기, 밤 수면은 각각 세션의 예입니다.
세션은 활동 중에 수집된 특정 기간의 데이터 세트를 그룹화합니다. 예를 들어 사용자가 3km 달리기를 시작하고 끝낸 시간을 추적한 경우 세션이 생성되고 해당 시간 내의 모든 피트니스 데이터 (예: 걸음 수, 속도, 거리)가 해당 세션과 연결됩니다.
세션 자체에는 활동에 관한 세부정보가 포함되지 않습니다. 이 값은 데이터 세트에 있습니다. 세션에는 다음과 같은 속성이 있습니다.
- 설명이 포함된 별칭 (예: '아침 러닝')
- 설명
- 고유 식별자
- 캡처하는 활동의 유형 (예: 러닝)
세션 사용의 이점
- 사용자에게 유용: 세션을 사용하면 사용자에게 의미 있는 방식으로 활동 데이터와 운동을 정리할 수 있습니다. Google 피트니스 앱의 일기 페이지에서 하루 동안의 모든 활동을 확인할 수 있습니다.
- 일관된 사용자 환경: 앱 또는 호환 기기에서 활동 추적 (사용자가 활동을 시작하고 중지할 수 있음)을 허용하는 경우 이러한 운동의 세션을 사용하면 사용자가 두 앱에서 활동을 확인할 수 있습니다.
- 더 완전한 데이터: Google 피트니스는 여러 소스의 데이터를 병합하여 세션 정보를 보완하고 풍부하게 만듭니다. 이를 통해 사용자 활동을 보다 전체적으로 파악할 수 있습니다.
- Google 피트니스 플랫폼 활용: 사용자가 활동을 추적하지 않거나 앱에서 추적을 지원하지 않는 경우에도 Google 피트니스에서 세션을 읽을 수 있습니다. 자체 스키마와 스토리지를 구현하지 않고도 피트니스 저장소에서 세부 데이터 또는 집계 데이터를 쿼리하고 사용 가능한 세션을 찾을 수 있습니다.
- 사용자 참여도 증가: 사용자에게 사용 가능한 세션과 세션을 만든 앱을 표시할 수 있습니다. 이러한 방식으로 다른 피트니스 앱과 상호작용하면 사용자 참여도를 높일 수 있습니다.
세션에 대한 사용자 승인 받기
세션을 읽거나 쓰려면 앱이 사용자의 권한을 얻어야 합니다. 세션 액세스는 데이터 유형과 동일한 승인 범위를 사용하며, 다음과 같이 요청해야 합니다.
Android
FitnessOptions의 적절한 메서드를 사용하여 앱에서 액세스해야 하는 세션 유형을 지정합니다.
예를 들어 러닝과 관련된 세션을 읽으려면 다음을 선택하면 됩니다.
val fitnessOptions = FitnessOptions.builder()
.accessActivitySessions(FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.build()
이 예에서는 앱이 활동 세션 메타데이터에 액세스하려고 하며 이러한 세션 내에서 읽으려는 데이터 유형도 지정합니다. 이 예에서는 심박수, 속도, 위치 데이터 유형이 사용됩니다.
REST
다음과 같이 범위를 요청합니다.
- 수면 활동 유형이 있는 세션:
https://www.googleapis.com/auth/fitness.sleep.readhttps://www.googleapis.com/auth/fitness.sleep.write
- 기타 모든 세션:
https://www.googleapis.com/auth/fitness.activity.readhttps://www.googleapis.com/auth/fitness.activity.write
세션 사용
Android
Sessions API를 사용하면 다음 작업을 할 수 있습니다.
- 실시간으로 세션 만들기
- 피트니스 저장소에 세션 삽입
- 운동 중 일시중지를 지원하기 위해 활동 세그먼트 삽입
- 세션 및 세션과 연결된 데이터 세트 읽기
- 다른 앱을 실행하여 생성된 세션에 관한 정보를 표시합니다.
- 다른 앱이 세션을 시작할 때 인텐트 수신
REST
Sessions API를 사용하면 다음 작업을 할 수 있습니다.
- 실시간으로 세션 만들기
- 피트니스 저장소에 세션 삽입
- 운동 중 일시중지를 지원하기 위해 활동 세그먼트 삽입
- 세션 및 세션과 연결된 데이터 세트 읽기
데이터 세트 및 세그먼트가 세션과 상호작용하는 방식
Google 피트니스에서 다음 단계를 따르세요.
- 데이터 세트는 특정 기간 동안의 특정 데이터 소스에서 가져온 데이터 포인트 집합을 나타냅니다. 데이터 세트는 자체적으로 삽입할 수 있습니다. 하지만 세션을 만드는 경우 세션과 데이터 세트를 함께 만드는 것이 더 쉬울 수 있습니다.
- 세그먼트는 세션의 데이터 세트를 사용자가 세션에서 수행한 정확한 활동별로 그룹화합니다. 예를 들어 사용자가 30분간의 러닝 (세션)을 추적했지만 이 시간 동안 잠시 걸었다면 세션이 여러 세그먼트로 나뉠 수 있습니다. 러닝 세그먼트, 걷기 휴식 세그먼트, 다시 러닝 세그먼트가 있습니다.
그림 1은 앱 A, B, C가 일부 데이터 세트와 세션을 삽입한 피트니스 저장소의 시간 간격을 보여줍니다.
- 앱 A는 세션 1과 함께 데이터 세트 A1과 A2를 삽입했고, A3는 세션과 독립적으로 삽입했습니다.
- 앱 B가 세션 2와 함께 데이터 세트 B1과 B2를 삽입했습니다.
- 앱 C는 세션과 관계없이 데이터 세트 C1을 삽입했습니다.
피트니스 스토어에서 세션 데이터를 읽을 때 세션의 시간 간격에 속하는 모든 피트니스 데이터는 세션을 만든 후 데이터를 삽입하거나 데이터가 수동으로 추적된 후 세션을 만드는 경우에도 해당 세션과 자동으로 연결됩니다. 예를 들어 세션 1의 피트니스 데이터를 쿼리하면 다음이 반환됩니다.
- 데이터 세트 A1
- 데이터 세트 A2
- t1과 t2 사이의 데이터 세트 A3 부분
- t1과 t2 사이의 데이터 세트 C1 부분
각 세션과 데이터 세트를 삽입한 앱을 확인할 수 있습니다.
세션 만들기
세션은 다음과 같은 다양한 방식으로 만들 수 있습니다.
- 앱은
- 사용자가 기기에서 활동을 적극적으로 추적하는 경우 실시간 (Android만 해당)
- 수동으로 삽입하여
- 사용자가 Google 피트니스 앱에서 운동 또는 활동을 직접 추가하는 경우
세션을 만들어야 하는 경우
수면 데이터를 추가하고 있나요?
- 예 - 세션을 만들고 피트니스 스토어에 수동으로 삽입합니다. 예를 들어 수면 세션을 삽입합니다. 수면 추적 앱이나 기기를 사용하는 사용자는 수면 활동을 시작하고 중지하기 위해 기기와 상호작용하지 않기 때문입니다 (수동으로 추적됨).
- 아니요 - 앱에서 사용자가 활동을 시작하고 중지할 수 있나요?
- 아니요 - 세션을 만들지 않습니다. 앱의 데이터 세트만 추가하세요.
- 예 - 사용자가 활동을 추적하거나 수동으로 추적하는 경우 Android API를 사용하여 실시간으로 세션을 만듭니다. REST API를 사용하여 세션을 만들고 피트니스 저장소에 수동으로 삽입합니다.
- 앱에서 사용자가 더 세부적인 수준에서 다양한 활동을 하는 것을 감지할 수 있나요 (예: 걷기와 달리기)?
- 예 - 세그먼트를 추가합니다.
- 아니요 - 데이터 세트 추가만 가능합니다. 지금은 구간을 무시하고 Google 피트니스에서 수동적으로 구간을 만들도록 합니다.
세션 읽기
앱은 다음과 같은 몇 가지 방법으로 세션을 읽을 수 있습니다.
- 이름 또는
- ID
- 기간별로 생성/삽입된 모든 세션을 찾습니다.
- 기간별로 모든 앱 (Google 피트니스 포함)에서 생성된 사용 가능한 모든 세션을 찾습니다.
세션을 만든 소스 알아보기
사용자에게 각 세션을 만든 앱 또는 기기를 표시할 수 있습니다. 각 세션에는 연결된 데이터 소스가 있으며, 여기에는 데이터를 수집하거나 변환한 앱 또는 기기에 관한 정보가 포함됩니다.
Android
현재 Android 클라이언트에서 작성한 세션의 패키지 이름만 가져올 수 있습니다. 세션을 만든 앱의 패키지 이름을 가져오려면 getAppPackageName 메서드를 사용합니다. 앱에서 이 정보를 사용하여 피트니스 세션을 삽입한 다른 앱을 사용자에게 표시할 수 있습니다. 이러한 각 앱의 아이콘을 표시하여 사용자가 앱을 식별할 수 있도록 지원할 수 있습니다.
인텐트를 실행하여 다른 앱을 실행하여 생성된 세션의 세부정보를 표시할 수도 있습니다. 다른 앱도 인텐트를 실행하여 앱을 실행할 수 있습니다.
세션을 만든 소스를 찾는 방법에 대해 자세히 알아보세요.
REST
세션을 만든 Android 앱의 패키지 이름을 가져오려면 session.application 속성을 사용합니다. REST API를 사용하여 만든 세션의 경우 대신 session.name 속성을 사용하세요. 앱에서 이 정보를 사용하여 사용자에게 피트니스 세션을 삽입한 다른 앱을 표시할 수 있습니다. 사용자가 앱을 식별할 수 있도록 각 앱의 아이콘을 표시할 수 있습니다.
세션을 만든 소스를 찾는 방법에 대해 자세히 알아보세요.