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 tomar.

Primeiros passos

A API Feature Availability compartilha a mesma dependência do SDK Health Connect. 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.1.0-alpha08")
}

Flags de recursos

As flags de recursos disponíveis para o Health Connect estão listadas na tabela a seguir. 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
FEATURE_EXTENDED_DEVICE_TYPES Tipos de dispositivos estendidos Requisitos de metadados
FEATURE_PERSONAL_HEALTH_RECORD Históricos médicos Formato de dados de registros médicos
Gravar dados médicos
Ler dados médicos
FEATURE_MINDFULNESS_SESSION Mindfulness Acompanhar a prática de mindfulness
FEATURE_PLANNED_EXERCISE Exercício planejado Planos de treinamento
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 Medir a temperatura da pele

Faça a verificação

A principal função para verificar a disponibilidade de recursos é getFeatureStatus(). Isso retorna as constantes inteiras 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 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 recursos 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 orientar o usuário a atualizar 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 mais recente.

Para tipos de dispositivos 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 razoável na sua lógica de gravação e de interface.