Permissões do Android

O objetivo das permissões do Android é proteger a privacidade de um usuário do Android. Elas solicitam o usuário quando os apps querem acessar tipos de dados sensíveis, como contatos ou fotos, e recursos do sistema, como localização ou detecção de etapas. Os usuários concedem essas permissões ao fazer o download do app pela primeira vez.

Caso o app precise de acesso a qualquer um desses tipos de dados (um subconjunto dos tipos de dados do Google Fit), solicite a permissão relevante do Android antes de solicitar as permissões do OAuth. Veja os detalhes abaixo.

Exemplo da tela de permissão de permissões do Android
Figura 1. Tela de consentimento das permissões do Android.

Tipos de dados que precisam de permissões do Android

Para acessar esses tipos de dados de atividade física, você precisará solicitar a permissão do ACTIVITY_RECOGNITION do Android:

  • Para registrar esses tipos de dados:

    • com.google.step_count.delta
    • com.google.step_count.cumulative
    • com.google.step_count.cadence
    • com.google.activity.segment
    • com.google.calories.expended
  • Para ler esses tipos de dados:

    • com.google.step_count.delta
    • com.google.step_count.cumulative
    • com.google.step_count.cadence
    • com.google.activity.segment
    • com.google.activity.exercise

Para acessar esses tipos de dados, você precisará solicitar a permissão do Android ACCESS_FINE_LOCATION:

  • Para ler esses tipos de dados:
    • com.google.distance.delta
    • com.google.location.sample
    • com.google.location.bounding_box
    • com.google.speed

Para registrar esses tipos de dados, você precisará solicitar a permissão do Android no BODY_SENSORS:

  • com.google.heart_rate.bpm

Como solicitar permissões no Android

Saiba mais sobre como solicitar permissões do Android, a permissão de reconhecimento de atividade física, a permissão de localização exata e a permissão para sensores corporais.

Para acessar os tipos de dados acima com as APIs do Google Fit, você precisará implementar a lógica para processar a solicitação de permissões do Android para o Android 10 e as versões anteriores do Android. Estes exemplos usam a permissão ACTIVITY_RECOGNITION.

Android 10

Assim, o app pode ser direcionado à API de nível 29 ou mais recente, solicitar a permissão do usuário e registrar a permissão no arquivo de manifesto do aplicativo.

  1. Adicione a permissão ao arquivo de manifesto.

    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
    
  2. Verifique se a permissão foi concedida:

    if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION)
              != PackageManager.PERMISSION_GRANTED) {
          // Permission is not granted
    }
    
  3. Caso a permissão ainda não tenha sido concedida, solicite-a:

    ActivityCompat.requestPermissions(thisActivity,
                arrayOf(Manifest.permission.ACTIVITY_RECOGNITION),
                MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
    

Android 9 e versões anteriores

Assim, o app pode ser direcionado ao nível 28 da API ou anterior:

  1. Solicite a permissão com.google.android.gms.permission.ACTIVITY_RECOGNITION.

  2. Adicione a permissão ao arquivo de manifesto.

    <uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>