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