맞춤 데이터 유형

앱에서 Google 피트니스 플랫폼의 기존 데이터 유형 중 하나에 아직 포함되지 않은 정보를 캡처해야 하는 경우 맞춤 데이터 유형을 만들면 됩니다.

커스텀 데이터 유형 만들기

맞춤 데이터를 캡처하기 위한 맞춤 데이터 유형을 생성하거나 지정합니다. 커스텀 데이터 유형을 만들 때 다음을 확인하세요.

  • 데이터 유형 이름은 기본 데이터를 정확하게 나타냅니다.
  • 데이터 유형 이름의 프리픽스가 앱의 패키지 이름과 일치합니다.

Android

커스텀 데이터 유형을 처음 만들려면 ConfigClient.createCustomDataType 메서드를 사용합니다.

val request = DataTypeCreateRequest.Builder()
    // The prefix of your data type name must match your app's package name
    .setName("com.packagename.appname.custom_data_type") // Add some custom fields, both int and float
    .addField("field1", Field.FORMAT_INT32)
    .addField("field2", Field.FORMAT_FLOAT)
    // Add some common fields
    .addField(Field.FIELD_ACTIVITY)
    .build()

Fitness.getConfigClient(this, account)
    .createCustomDataType(request)
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Created data type: ${dataType.name}")
    }

REST

데이터 유형은 REST API에서 데이터 소스의 속성입니다. 커스텀 데이터를 캡처하려면 데이터 소스를 만든 다음 데이터 유형을 지정해야 합니다.

  1. REST API를 호출하여 새 데이터 소스를 만듭니다. 예를 들면 FlexibilityMeasure입니다.
  2. 데이터 유형이 캡처하는 데이터를 밀접하게 나타내는 고유한 이름을 지정합니다.

  3. 데이터 유형의 필드와 형식을 지정합니다.

HTTP 메소드

POST

요청 URL

https://www.googleapis.com/fitness/v1/users/me/dataSources

요청 본문

{
  "dataStreamName": "FlexibilityMeasure",
  "type": "raw",
  "application": {
    "detailsUrl": "http://recoveryapps.com",
    "name": "Stretch Flex",
    "version": "1"
  },
  "dataType": {
    "name": "com.recoveryapps.stretchflex.flexibility",
    "field": [
     {
      "name": "ankle_range_degrees",
      "format": "integer"
     },
     {
      "name": "wrist_range_degrees",
      "format": "integer",
      "optional": true
     }
    ]
   }
}

응답

데이터 소스가 성공적으로 생성되면 200 OK HTTP 응답 상태 코드를 얻습니다. 응답 본문에는 datasource.dataStreamId 속성을 비롯하여 데이터 소스의 JSON 표현이 포함됩니다. 이 ID를 dataSourceId로 사용하여 데이터를 추가합니다.

커스텀 데이터 유형 사용

Android

ConfigClient.readDataType 메서드를 사용하여 맞춤 데이터 유형 이름을 문자열(com.packagename.appname.custom_data_type)에서 DataType 객체로 변환합니다. 반환된 객체를 사용하여 커스텀 데이터를 삽입하고 읽습니다.

Fitness.getConfigClient(this, account)
    .readDataType("com.packagename.appname.custom_data_type")
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Retrieved data type: ${dataType.name}")
    }

REST

커스텀 데이터 유형을 사용하여 커스텀 데이터를 추가하거나 읽으려면 데이터 소스가 필요합니다. 커스텀 데이터 유형의 데이터 소스를 확인하려면 REST 요청을 GET API로 전송하세요.

맞춤 데이터 추가

커스텀 데이터를 삽입하려면 새 데이터 포인트가 있는 데이터 세트를 만드세요. 커스텀 데이터 유형을 위해 만든 데이터 소스를 지정합니다. 데이터 포인트에는 맞춤 데이터 유형에 지정된 모든 올바른 필드와 형식이 있어야 합니다.

커스텀 데이터 읽기

커스텀 데이터를 읽으려면 Google 피트니스 플랫폼에서 데이터 포인트를 가져올 때 맞춤 데이터 유형으로 만든 데이터 소스를 지정합니다.