Verificar a disponibilidade do recurso

Quando novos recursos são adicionados à Conexão Saúde, os usuários nem sempre atualizam a versão do app. A API Feature Availability é uma maneira de verificar se um recurso do Conexão Saúde está disponível no dispositivo do usuário e decidir qual ação realizar.

Primeiros passos

A API Feature Availability compartilha a mesma dependência do SDK da Conexão Saúde. Para começar, verifique se pelo menos a versão 1.1.0-alpha08 está no arquivo build.gradle:

dependencies {
  implementation("androidx.health.connect:connect-client:1.2.0-alpha06")
}

Flags de recurso

As flags de recurso disponíveis para o Conexão Saúde estão listadas na tabela abaixo. A funcionalidade por trás de uma flag de recurso não estará disponível para uso se o dispositivo do usuário não for compatível com o recurso.

Tabela: flags de disponibilidade de recursos do app Conexão Saúde
Flag de recurso Tipo de dado Guias relacionados
FEATURE_ACTIVITY_INTENSITY Intensidade da atividade Treinos
FEATURE_EXTENDED_DEVICE_TYPES Tipos de dispositivos estendidos Requisitos de metadados
FEATURE_MATCHMAKING combinações
FEATURE_PERSONAL_HEALTH_RECORD Históricos médicos Formato de dados de históricos médicos
Gravar dados de saúde
Ler dados de saúde
FEATURE_MINDFULNESS_SESSION Mindfulness Acompanhar a meditação
FEATURE_PLANNED_EXERCISE Exercício planejado Treinos
Planos de treino
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Ler dados em segundo plano Exemplo de leitura em segundo plano
FEATURE_READ_HEALTH_DATA_HISTORY Ler dados históricos Ler dados com mais de 30 dias
FEATURE_SKIN_TEMPERATURE Temperatura da pele Sinais vitais
Medir a temperatura da pele

Fazer a verificação

A principal função para verificar a disponibilidade de recursos é getFeatureStatus(). Isso retorna as constantes de número inteiro FEATURE_STATUS_AVAILABLE ou FEATURE_STATUS_UNAVAILABLE:

Para determinar se o dispositivo de um usuário é compatível com a leitura de dados de saúde em segundo plano no app Conexão Saúde, verifique a disponibilidade de FEATURE_READ_HEALTH_DATA_IN_BACKGROUND no cliente:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

Para uma lista de todas as flags de recurso disponíveis, consulte a página de referência HealthConnectFeatures.

Gerenciar a falta de disponibilidade de recursos

Se um recurso não estiver disponível no dispositivo de um usuário, uma atualização poderá ativá-lo. Você pode pedir que o usuário atualize o app Conexão Saúde se ele não tiver a versão mais recente compatível no dispositivo. No entanto, os usuários que usam o APK (no Android 13 e versões anteriores) não podem usar os recursos do módulo do sistema que estão disponíveis apenas em dispositivos com o Android 14 ou versões mais recentes.

Para tipos de dispositivo estendidos, se FEATURE_EXTENDED_DEVICE_TYPES não estiver disponível no dispositivo do usuário, esses valores serão tratados como Device.TYPE_UNKNOWN. Forneça um substituto sensato na lógica de gravação e da interface.