API Health Platform

Ela é uma API do Android que oferece aos desenvolvedores uma única interface para ler, gravar e compartilhar dados de saúde, bem-estar e condicionamento físico de um usuário. Com a Health Platform, os usuários têm controle sobre os próprios dados. Eles controlam quais apps têm acesso de leitura ou gravação a diferentes tipos de dados. Os tipos de dados da API Health Platform incluem altura, frequência cardíaca e muitos outros.

A API Health Platform oferece aos usuários um mecanismo de armazenamento e compartilhamento que permite selecionar quais apps podem acessar e mostrar dados pessoais de saúde, condicionamento físico e bem-estar. Assim, os desenvolvedores de apps podem mostrar um panorama mais completo da saúde do usuário, e os usuários podem monitorar os próprios dados de maneira mais eficaz.

O kit de desenvolvimento de software da API Health Platform inclui tudo o que os desenvolvedores de apps Android precisam para acessar os dados de saúde e bem-estar de um usuário em alguns dispositivos Samsung, além de permitir que os apps executem operações em massa, como inserção, exclusão e leitura dados.

Primeiros passos

Ao usar a Health Platform, lembre-se do seguinte:

  • Os apps clientes precisam de permissões granulares do usuário para ter acesso de leitura ou gravação.
  • O usuário pode negar ou revogar permissões quando quiser.
  • A API Health Platform oferece suporte apenas para alguns dispositivos Samsung.
  • HealthDataClient é o cliente da Health Platform e um ponto de entrada para essa API.

A imagem abaixo mostra as etapas de integração que os desenvolvedores precisam seguir:

integration-steps

Arquivos da versão

A versão V1 da Health Platform contém o seguinte:

  • SDK do cliente: inclua esse SDK no seu aplicativo para usar a API Health Platform. O SDK é um repositório Maven que pode ser incluído diretamente nos arquivos de build do Gradle do seu app.

Instalar a Health Platform

Para instalar a Health Platform, siga estas etapas:

No arquivo raiz build.gradle do app, adicione o repositório, conforme mostrado no exemplo a seguir:

allprojects {
    ...
    repositories {
        ...
        google()
    }
}

Adicione uma dependência ao SDK da Health Platform no arquivo build.gradle do módulo, como mostrado no exemplo a seguir:

dependencies {
   …
  implementation 'com.google.android.libraries.healthdata:health-data-api:1.0.0-alpha01'
}

Dados

A Health Platform armazena e estrutura dados de saúde e condicionamento físico. Ela também considera as principais diferenças entre as formas de medir alguns tipos de dados. Por exemplo, a medição de frequência cardíaca é imediata, enquanto a contagem de passos é realizada ao longo de um período.

Confira abaixo os principais objetos da Health Platform e as diferenças entre eles:

  • RawData: registro de dados e medições.
  • DataType: especificador de tipos comuns de dados de saúde e condicionamento físico, como frequência cardíaca, gordura corporal ou temperatura corporal, e de formatos de dados, como campos, somente leitura ou opcionais.
  • SampleData: objeto RawData que equivale a uma medida instantânea, como frequência cardíaca, pressão arterial ou velocidade de corrida.
  • IntervalData: objeto RawData que equivale a uma medida cumulativa ao longo de um período, como número de passos, distância percorrida ou calorias queimadas.
  • SeriesData: objeto RawData que encapsula uma sequência de medidas ao longo de um período. O SeriesData serve principalmente para dados de sensores de alta frequência, como medições contínuas de frequência cardíaca durante uma sessão de atividade.

Cada uma das três classes RawData corresponde a uma subclasse específica de DataType, ou seja, SampleData, IntervalData e SeriesData correspondem a SampleDataType, IntervalDataType e SeriesDataType, respectivamente.

Quando inserido, cada objeto RawData recebe um identificador exclusivo (UID, na sigla em inglês) da Health Platform. Esse UID pode ser usado para mencionar um objeto RawData específico em solicitações de leitura, atualização ou exclusão.

Tipos de dados

A API Health Platform inclui um amplo conjunto de tipos de dados usados com frequência em apps de saúde e condicionamento físico. Os dados armazenados nos tipos disponíveis fornecem ao usuário um panorama abrangente dos próprios dados de saúde, condicionamento físico e bem-estar, proporcionando um entendimento melhor das atividades diárias dele.

Cada tipo de dado é definido pelo formato de dados, que inclui:

  • Campos: associados ao tipo de dados, podem ser específicos ou genéricos. Por exemplo, dados de saturação de oxigênio no sangue (SpO2) têm campos como "Título", "Observações" e "Porcentagem".
  • Tipo: long, double, string ou enumeração.
  • Atributo: somente leitura, obrigatório, opcional ou intervalo de validação.

Lista de tipos de dados

É importante compreender os tipos de dados disponíveis para conseguir aproveitar ao máximo a Health Platform. A Health Platform oferece suporte aos tipos de dados apresentados na tabela abaixo. Eles são organizados de acordo com o formato: amostra, intervalo ou série.

Tipos SampleData:

DataType.BasalMetabolicRateDataType BASAL_METABOLIC_RATE Obrigatório
DataType.BloodGlucoseDataType BLOOD_GLUCOSE Obrigatório e opcional
DataType.BloodPressureDataType BLOOD_PRESSURE Obrigatório e opcional
DataType.BodyFatDataType BODY_FAT Obrigatório
DataType.BodyTemperatureDataType BODY_TEMPERATURE Obrigatório e opcional
DataType.BoneMassDataType BONE_MASS Obrigatório
DataType.CervicalMucusDataType CERVICAL_MUCUS Opcional
DataType.CervicalPositionDataType CERVICAL_POSITION Opcional
DataType.CyclingPedalingCadenceDataType CYCLING_PEDALING_CADENCE Obrigatório
DataType.DateOfBirthDataType DATE_OF_BIRTH Somente leitura
DataType.GenderDataType GENDER Somente leitura
DataType.HeartRateDataType HEART_RATE Obrigatório
DataType.HeightDataType HEIGHT Obrigatório
DataType.HipCircumferenceDataType HIP_CIRCUMFERENCE Obrigatório
DataType.HrvDifferentialIndexDataType HRV_DIFFERENTIAL_INDEX Obrigatório
DataType.HrvRmssdDataType HRV_RMSSD Obrigatório
DataType.HrvSDataType HRV_S Obrigatório
DataType.HrvSd2DataType HRV_SD2 Obrigatório
DataType.HrvSdannDataType HRV_SDANN Obrigatório
DataType.HrvSdnnDataType HRV_SDNN Obrigatório
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX Obrigatório
DataType.HrvSdnnIndexDataType HRV_SDNN_INDEX Obrigatório
DataType.HrvSdsdDataType HRV_SDSD Obrigatório
DataType.HrvTinnDataType HRV_TINN Obrigatório
DataType.LeanBodyMassDataType LEAN_BODY_MASS Obrigatório
DataType.LocationDataType LOCATION Obrigatório
DataType.MenstruationDataType MENSTRUATION Opcional
DataType.OvulationTestDataType OVULATION_TEST Obrigatório
DataType.OxygenSaturationDataType OXYGEN_SATURATION Obrigatório
DataType.PaceDataType PACE Obrigatório
DataType.PowerDataType POWER Obrigatório
DataType.RespiratoryRateDataType RESPIRATORY_RATE Obrigatório
DataType.RestingHeartRateDataType RESTING_HEART_RATE Obrigatório
DataType.SexualActivityDataType SEXUAL_ACTIVITY Obrigatório
DataType.SpeedDataType SPEED Obrigatório
DataType.StepsCadenceDataType STEPS_CADENCE Obrigatório
DataType.Vo2MaxDataType VO2_MAX Obrigatório e opcional
DataType.WaistCircumferenceDataType WAIST_CIRCUMFERENCE Obrigatório
DataType.WeightDataType WEIGHT Obrigatório

Tipos IntervalData:

DataType.ActiveEnergyDataType ACTIVE_ENERGY_BURNED Obrigatório
DataType.ActiveTimeDataType ACTIVE_TIME Somente leitura
DataType.ActivityEventDataType ACTIVITY_EVENT Obrigatório
DataType.ActivityLapDataType ACTIVITY_LAP Opcional
DataType.ActivitySessionDataType ACTIVITY_SESSION Obrigatório
DataType.BasalEnergyDataType BASAL_ENERGY_BURNED Somente leitura
DataType.DistanceDataType DISTANCE Obrigatório
DataType.ElevationGainedDataType ELEVATION_GAINED Obrigatório
DataType.FloorsClimbedDataType FLOORS_CLIMBED Obrigatório
DataType.HydrationDataType HYDRATION Obrigatório
DataType.NutritionDataType NUTRITION Opcional
DataType.RepetitionsDataType REPETITIONS Obrigatório
DataType.SleepSessionDataType SLEEP_SESSION Opcional
DataType.SleepStageDataType SLEEP_STAGE Obrigatório
DataType.StepsDataType STEPS Obrigatório
DataType.SwimmingStrokesDataType SWIMMING_STROKES Obrigatório e opcional
DataType.TotalEnergyDataType TOTAL_ENERGY_BURNED Somente leitura

Tipos SeriesData:

DataType.CyclingPedalingCadenceSeriesDataType CYCLING_PEDALING_CADENCE Obrigatório
DataType.HeartRateSeriesDataType HEART_RATE Obrigatório
DataType.LocationSeriesDataType LOCATION Obrigatório
DataType.PaceSeriesDataType PACE Obrigatório
DataType.PowerSeriesDataType POWER Obrigatório
DataType.SpeedSeriesDataType SPEED Obrigatório
DataType.StepsCadenceSeriesDataType STEPS_CADENCE Obrigatório

Funções do desenvolvedor

Apresentamos a seguir o conjunto de funções de dados padrão disponíveis na Health Platform. A plataforma oferece funções padrão para inserir, atualizar e excluir dados brutos.

Ler AggregatedData

A plataforma permite que os clientes apliquem uma função de agregação aos tipos de AggregatedData abaixo:

  • StatisticalData: mostra o valor médio, mínimo ou máximo em um conjunto de SampleData ou SeriesData, como a frequência cardíaca mínima e máxima durante uma sessão de atividade.
  • CumulativeData: informa a soma dos valores de IntervalData, como a contagem total de passos em um dia.
  • CountData: mostra uma contagem simples do número de objetos RawData, como o número de sessões de atividade em uma determinada semana. Os dados de contagem podem ser computados como dados de amostra, intervalo e série.

Conectar o app à API Health Platform

O HealthDataClient é o ponto de entrada para a API Health Platform.

As etapas a seguir descrevem como se conectar à Health Platform:

  1. Use HealthDataService.getClient para criar novas instâncias de HealthDataClient.
  2. O app cliente precisa usar o método requestPermissions (Set) para pedir a permissão do usuário.

O HealthDataClient gerencia automaticamente a conexão com a camada de armazenamento e executa toda a comunicação entre processos (IPC) e a serialização das solicitações enviadas e das respostas recebidas.