세션 수

세션은 사용자가 수행했던 모든 기본 활동 목록을 빠르고 쉽게 볼 수 있는 방법입니다. 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.read
    • https://www.googleapis.com/auth/fitness.sleep.write
  • 기타 모든 세션:
    • https://www.googleapis.com/auth/fitness.activity.read
    • https://www.googleapis.com/auth/fitness.activity.write

세션 사용

Android

Sessions API를 사용하여 다음 작업을 할 수 있습니다.

  • 실시간으로 세션 만들기
  • 피트니스 스토어에 세션을 삽입합니다.
  • 운동 중 일시중지를 지원하기 위해 활동 세그먼트를 삽입합니다.
  • 연결된 세션 및 데이터 세트 읽기
  • 다른 앱을 실행하여 생성된 세션에 관한 정보 표시
  • 다른 앱에서 세션을 시작하면 인텐트 수신

REST

Sessions API를 사용하여 다음 작업을 할 수 있습니다.

  • 실시간으로 세션 만들기
  • 피트니스 스토어에 세션을 삽입합니다.
  • 운동 중 일시중지를 지원하기 위해 활동 세그먼트를 삽입합니다.
  • 연결된 세션 및 데이터 세트 읽기

데이터 세트 및 세그먼트와 세션 간의 상호작용

Google 피트니스의 경우:

  • 데이터 세트특정 기간 동안 특정 데이터 소스데이터 포인트 세트를 나타냅니다. 데이터 세트는 자체적으로 삽입할 수 있습니다. 하지만 세션을 만드는 경우 세션과 데이터 세트를 함께 생성하는 것이 더 쉬울 수 있습니다.
  • 세그먼트는 사용자가 세션에서 수행한 정확한 활동을 기준으로 세션의 데이터 세트를 그룹화합니다. 예를 들어 사용자가 30분 달리기 (세션)를 추적하지만 이 시간 동안 잠시 걸으면 이 구간으로 분할될 수 있습니다. 달리기 세그먼트, 쉬는 시간, 다시 달리기 구간이 있습니다.
그림 1: 다양한 앱이 [피트니스 저장소]에 세션과 데이터 세트를 추가

그림 1은 앱 A, B, C가 일부 데이터 세트와 세션을 삽입한 시간인 피트니스 저장소의 시간 간격을 보여줍니다.

  • 앱 A는 세션과 관계없이 데이터 세트 A1과 A2를 세션 1과 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 속성을 사용합니다. 앱에서 이 정보를 사용하여 피트니스 세션을 삽입한 다른 앱을 사용자에게 표시할 수 있습니다. 사용자가 앱을 알아볼 수 있도록 각 앱의 아이콘을 표시할 수 있습니다.

세션을 생성한 소스 찾기에 대해 자세히 알아보세요.