Permissões do Android

As permissões do Android têm como objetivo proteger a privacidade de um usuário do Android. Elas solicitam ao 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 passos. Os usuários concedem essas permissões ao fazer o download do app pela primeira vez.

Se o app precisar acessar qualquer um destes tipos de dados (um subconjunto dos tipos de dados do Google Fit), solicite a permissão relevante do Android antes de pedir 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 de permissões do Android.

Tipos de dados que precisam de permissões do Android

Para acessar esses tipos de dados de atividade física, é necessário solicitar a permissão ACTIVITY_RECOGNITION do Android:

  • Para gravar 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, é necessário 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 gravar esses tipos de dados, é necessário solicitar a permissão do Android:BODY_SENSORS

  • com.google.heart_rate.bpm

Como solicitar permissões do Android

Saiba 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 de sensores corporais.

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

Android 10

Para que o app possa segmentar o nível desejado da API 29 ou mais recente, solicite a permissão do usuário e registre-a 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. Se a permissão ainda não tiver sido concedida, solicite-a:

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

Android 9 e versões anteriores

Para que o app possa segmentar o nível desejado da API 28 ou versões anteriores:

  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"/>