Saúde

  
Crie aplicativos de saúde de alto desempenho de maneira independente da plataforma.
Atualização mais recente Versão estável Candidata a lançamento Versão Beta Versão Alfa
11 de janeiro de 2023 - - 1.0.0-beta02 -

Declarar dependências

Para adicionar uma dependência da Health, é preciso adicionar o repositório Maven do Google ao seu projeto. Consulte Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.health:health-services-client:1.0.0-beta02"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.0.0-beta02")
}

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Cliente da Conexão Saúde: versão 1.0

Versão 1.0.0-alpha04

24 de agosto de 2022

A partir da versão 1.0.0-alpha04, androidx.health:health-connect-client foi migrado para androidx.health.connect:connect-client. Para versões futuras, use o androidx.health.connect:connect-client e as notas da versão associadas na nossa página Conexão Saúde.

Para migrar, basta mudar a importação da dependência de androidx.health:health-connect-client:1.0.0-alpha03 para androidx.health.connect:connect-client:1.0.0-alpha04.

Versão 1.0.0-alpha03

27 de julho de 2022

Lançamento de androidx.health:health-connect-client:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

  • Resumo das novas mudanças na API: um conjunto de unidades foi adicionado às APIs agregadas e de leitura e gravação. Os apps agora podem extrair ou gravar registros com a unidade que preferirem, como gramas ou miligramas para nutrientes do NutritionRecord.

Mudanças na API

  • List<DataOrigin> foi corrigido para ser Set<DataOrigin> em vários objetos de resposta de solicitação (I42342).
  • A unidade do total de calorias basais de Power->Energy foi corrigida (I0b429).
  • As classes de exemplo de séries foram movidas para os registros de série (Ica9bb):
    • CyclingPedalingCadence -> CyclingPedalingCadenceRecord.Sample
    • HeartRate -> HeartRateRecord.Sample
    • StepsCadence -> StepsCadenceRecord.Sample
  • A classe HealthDataRequestPermission foi descontinuada em favor de PermissionController.createRequestPermissionActivityContract. Isso melhora a possibilidade de descoberta e parametrização unificada (I81e7f).
  • A unidade de onças líquidas dos EUA foi adicionada a Volume (I5f03d).
  • O tipo de unidade Velocidade foi adicionado (I1d574).
  • O tipo de unidade Porcentagem foi adicionado (I08f23).
  • O tipo de unidade Pressão foi adicionado (Ifb01f).
  • O tipo de unidade Massa foi adicionado (Ifd81a).
  • O tipo de unidade Volume foi adicionado (I59ad1).
  • O tipo de unidade Potência foi adicionado. A classe de exemplo de séries de Potência foi movida para a classe PowerRecord (I5b1e5).
  • O tipo de unidade Energia foi adicionado (I983ae).
  • O tipo de unidade Temperatura foi adicionado (I4cdb5).
  • As referências de Atividade foram renomeadas para serem específicas por Exercício, incluindo (I3f936):
    • O elemento ActivityLap foi renomeado como ExerciseLapRecord.
    • O elemento ActivityEvent foi renomeado como ExerciseEventRecord.
    • O elemento Repetitions foi renomeado como ExerciseRepetitionsRecord.
    • O elemento ActivitySession foi renomeado como ExerciseSessionRecord.
  • Os metadados de pacotes foram aninhados em registros (Ie0835).
  • A unidade Comprimento foi usada em todos os registros restantes (Ib10dd):
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • O tipo de unidade Comprimento foi adicionado (Idae39).
  • A terminologia de descrição de CervicalMucus foi atualizada (I25a2b):
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • O sufixo "Record" foi adicionado a todos os nomes de classe de registro (I1ffc2).

Correções de bugs

  • Foram corrigidos problemas do ProGuard em que lib é criado com uma variação de lançamento e minifyEnabled está marcado como verdadeiro (I78933).
  • A documentação não destinada ao uso público foi ocultada (I7a08f).
  • O problema de clientes que podem ter as próprias dependências protobuf foi corrigido (https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430).

Versão 1.0.0-alpha02

1º de junho de 2022

Lançamento de androidx.health:health-connect-client:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Os métodos hasMetric e getMetric foram descontinuados em AggregationResult e os operadores "contains" e "get" foram adicionados (I7cc7c).
  • OvulationTest.Result.HIGH e OvulationTest.Result.INCONCLUSIVE foram adicionados (I9f9c4).

Correções de bugs

  • Redução dos requisitos do SDK para 26 (I6d201).

Versão 1.0.0-alpha01

11 de maio de 2022

Lançamento de androidx.health:health-connect-client:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

  • API para ler registros de saúde e de condicionamento físico compartilhados por outros apps.
  • API para gravar registros de saúde e condicionamento físico para compartilhar com outros apps.
  • API para recuperar métricas agregadas de registros acessíveis.
  • API para recuperar mudanças incrementais (inserir, atualizar ou excluir) de registros por outros apps.
  • API para solicitar permissões de saúde aos usuários.
  • API para verificar permissões ou revogar permissões concedidas de saúde.

Health Services Client: versão 1.0

Versão 1.0.0-beta02

11 de janeiro de 2023

Lançamento de androidx.health:health-services-client:1.0.0-beta02. A versão 1.0.0-beta02 contém estas confirmações.

Novos recursos

  • Adição de funções de extensão suspend para as APIs ListenableFuture assíncronas existentes em ExerciseClient, PassiveMonitoringClient e MeasureClient com o objetivo de melhorar o suporte para o Kotlin (Iadea4).
  • Adição da API ExerciseTypeConfig, que permite atualizações durante um exercício. Adição de GolfExerciseTypeConfig para oferecer suporte à atualização de ExerciseTypeConfig durante exercícios de golfe (I4c539).

Mudanças na API

  • Geração de uma HealthServicesException em funções de suspensão (I5e509).
  • Adição de outro construtor para compatibilidade com versões anteriores (Iddeda).
  • Geração de uma RuntimeException em funções de suspensão (I53bca).
  • A implementação padrão para gerar exceções foi removida (Id947f).
  • A anotação @JvmDefaultWithCompatibility foi adicionada (I8f206).

Correções de bugs

  • Adição de kdoc para maior clareza (Ide285).
  • O rastreamento de monitoramento passivo só vai ser permitido para metas se os mesmos tipos de dados também forem rastreados (Ibed8d).

Versão 1.0.0-beta01

24 de outubro de 2022

Lançamento de androidx.health:health-services-client:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Novos recursos

  • Foi adicionada a capacidade de detectar eventos de saúde usando PassiveMonitoringClient, com o primeiro evento sendo: HealthEvent.FALL_DETECTED.

  • Novos ExerciseTypes:

    • ALPINE_SKIING
    • BACKPACKING
    • CROSS_COUNTRY_SKIING
    • HORSE_RIDING
    • INLINE_SKATING
    • MOUNTAIN_BIKING
    • ORIENTEERING
    • ROLLER_SKATING
    • YACHTING
  • Novos DataTypes:

    • ELEVATION_LOSS
    • GOLF_SHOT_COUNT

Mudanças na API

  • Atualização da modelagem dos dados: reformulação do modelo de dados e de como DataTypes, DataPoints e os valores subjacentes deles são representados. O impacto de nível mais alto é que as APIs agora são muito mais explícitas e têm segurança de tipo.
  • Os DataPoints de local não são mais representados como um DoubleArray, mas como um objeto LocationData altamente tipado.
  • Mudança para um novo conjunto de APIs de listener passivo:
    • A transmissão foi substituída pelo PassiveListenerService.
    • Os listeners atuais foram substituídos por um único: PassiveListenerCallback.
  • Foi adicionada a tag <queries> ao manifesto dos Recursos de saúde para que os aplicativos não precisem mais especificar isso no próprio manifesto. Isso é possível desde que a fusão do manifesto esteja ativada no sistema de compilação.
  • Mudança de muitos ExerciseStates para representar que o exercício está terminando / terminou e adicionou novos estados de exercício ENDING e ENDED. Agora, eles são combinados com ExerciseEndReason para representar toda a gama de estados anteriores.
  • O PassiveListenerConfig setPassiveGoals foi renomeado como setDailyGoals para refletir melhor o suporte para as metas passivas diárias.
  • PassiveGoals agora são sempre REPEATED, o passivo TriggerFrequency foi removido.
  • Todos os parâmetros Long e Double foram anotados com @FloatRange.
  • A propriedade swimmingPoolLengthMeters foi adicionada a ExerciseConfig, que pode ser especificada para calcular melhor a distância de braçadas em piscinas.
  • ExerciseUpdate.activeDuration foi descontinuada. Use ExerciseUpdate.activeDurationCheckpoint.
  • A API flushExerciseAsync() foi renomeada como flushAsync() no ExerciseClient.
  • O elemento Measure.registerCallback foi renomeado como Measure.registerMeasureCallback.
  • Mudanças gerais de nomenclatura:
    • As propriedades de distância agora têm o sufixo meters.
    • Os nomes de métodos de callback agora estão no passado.
    • A maioria das abreviações foi removida: HrAccuracy agora é HeartRateAccuracy.
    • As propriedades que seguem o padrão enableFoo agora são chamadas de isFooEnabled.
  • Migração de tipos enumerados.
  • Os horários representados por Double agora são representados por Duration.
  • As funções que retornavam um ListenableFuture<Void?> agora retornam um ListenableFuture<Void>.
  • Agora, as funções que aceitam um callback sempre têm o callback que aparece como último parâmetro.
  • As classes com builders agora sempre têm construtores públicos.
  • As funções de registro não retornam mais um ListenableFuture e, em vez disso, transmitem o status de registro para o callback fornecido.
  • Melhorias no KDocs.
  • As classes públicas não estendem mais o ProtoParcelable.

Correções de bugs

  • Melhorias gerais na confiabilidade da IPC (I3b1e2).

Versão 1.0.0-alpha03

3 novembro de 2021

Lançamento de androidx.health:health-services-client:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

  • O SDK vai registrar novamente os pedidos de registro de callbacks para monitoramento passivo, listener de exercício e medidas caso a conexão IPC seja interrompida com o APK dos Recursos de saúde.

Mudanças na API

  • A minSdkVersion da biblioteca do SDK mudou para a API de nível 30, já que o cliente dos Recursos de saúde só tem suporte no Wear3.

Versão 1.0.0-alpha02

29 de setembro de 2021

Lançamento de androidx.health:health-services-client:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Agora, ExerciseClient oferece suporte para a preparação de um exercício. Isso permite que os clientes aqueçam os sensores e aguardem a conclusão de processos como a correção do ponto GPS antes de começarem o exercício.
  • As classes CumulativeDataPoints, StatisticalDataPoints e AggregateDataPoint foram introduzidas para melhor modelar as métricas agregadas que são monitoradas durante um exercício ativo. A classe CumulativeDataPoints armazena valores cumulativos de tipos de dados de intervalo agregados, como distância total percorrida durante o exercício, ao passo que o modelo de StatisticalDataPoints agrega pontos de dados de amostragem, como HeartRateBpm mínimo, máximo e médio. Isso substitui os DataTypes AGGREGATE_* anteriores e pode ser acessado na ExerciseUpdate usando o método getLatestAggregateMetrics(). Não há mais suporte para DataTypes AGGREGATE_*.
  • Os eventos PassiveMonitoring foram renomeados como PassiveGoals, permitindo definir metas e receber notificações quando elas forem cumpridas para alguns tipos dados, como métricas do tipo "Daily" (diárias) (por exemplo, DAILY_STEPS).
  • A modelagem de precisão e disponibilidade da frequência cardíaca e da localização foi melhorada usando as novas classes HrAccuracy, LocationAccuracy e LocationAvailability.
  • Melhoria nos nomes de ExerciseConfig, novos campos PassiveMonitoringConfig e introdução de ExerciseConfig.shouldEnableGps para solicitar dados de GPS.

Correções de bugs

  • Migração para o transporte IPC apoiado por proto para oferecer melhor suporte à compatibilidade com versões anteriores.

Versão 1.0.0-alpha01

18 de maio de 2021

Lançamento de androidx.health:health-services-client:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Recursos da versão inicial

A biblioteca Health Services oferece um conjunto uniforme de APIs para que os desenvolvedores se integrem a implementações de sensores específicos do dispositivo. Ela pode ser usada imediatamente com emuladores do Wear OS 3 e dispositivos futuros. Outras plataformas vão receber suporte no futuro. Três superfícies da API de nível superior estão incluídas nesta versão inicial: ExerciseClient, PassiveMonitoringClient e MeasureClient.

ExerciseClient

O ExerciseClient foi feito para aplicativos que monitoram treinos ativos com até 82 ExerciseTypes diferentes, desde treinos de caminhada e corrida até dança e polo aquático. Ao monitorar esses exercícios, há uma seleção de 50 DataTypes disponíveis, dependendo do tipo de exercício e do hardware disponível no dispositivo. Para começar, especifique as informações relevantes em ExerciseConfig, chame exerciseClient.startExercise e detecte o progresso no listener de atualização.

PassiveMonitoringClient

O PassiveMonitoringClient é uma ótima escolha se o aplicativo monitorar a atividade do usuário ao longo do dia. É possível registrar um PendingIntent com um conjunto de DataTypes para ser ativado e processar mudanças em lote. Como alternativa, especifique um Event, como alcançar um determinado número de passos.

MeasureClient

Às vezes, o usuário precisa medir a frequência cardíaca em um determinado momento, não durante um exercício ou ao longo do dia. Nesses momentos, o MeasureClient é a escolha perfeita. Basta registrar um callback com os DataTypes com suporte para receber um stream de dados e cancelar o callback quando ele não for mais necessário.