Explicar o acesso a informações mais confidenciais

As permissões relacionadas a localização, microfone e câmera concedem ao app acesso a informações particularmente confidenciais sobre os usuários. A plataforma inclui vários mecanismos, descritos nesta página, para ajudar os usuários a se manterem informados e no controle sobre quais apps podem acessar o local, o microfone e a câmera.

Esses recursos do sistema de preservação de privacidade não afetam como o app processa as permissões relacionadas a localização, microfone e câmera, desde que você siga as práticas recomendadas de privacidade.

Especificamente, faça o seguinte no seu aplicativo:

  • Aguarde até que o usuário conceda a permissão CAMERA ao app para acessar a câmera do dispositivo.
  • Aguarde até que o usuário conceda a permissão RECORD_AUDIO ao app para acessar o microfone do dispositivo.
  • Aguarde até que o usuário interaja com um recurso do seu app que exija a localização antes de solicitar a ACCESS_COARSE_LOCATION permissão ou ACCESS_FINE_LOCATION conforme descrito no guia sobre como solicitar permissões de localização de dados.
  • Aguarde até que o usuário conceda ao seu app a permissão ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION antes de solicitar a permissão ACCESS_BACKGROUND_LOCATION.

Painel de privacidade

Uma linha do tempo vertical mostrando os diferentes apps que
         acessaram informações de localização e a que horas os acessos ocorreram
Figura 1. Uso da localização, parte do painel de privacidade.

Em dispositivos compatíveis com o Android 12 ou versões mais recentes, a tela do painel de privacidade aparece nas configurações do sistema. Nela, os usuários podem acessar telas separadas que mostram quando os apps acessam informações de localização, câmera e microfone. Cada tela mostra uma linha do tempo de quando diferentes apps acessaram um tipo específico de dados. A Figura 1 mostra a linha do tempo dos acessos aos dados de informação da localização.

Mostrar justificativa para acesso aos dados

O app pode fornecer uma justificativa para os usuários para ajudá-los a entender por que precisa acessar informações de localização, câmera ou microfone. Essa lógica pode ser exibida na nova tela do painel de privacidade, na tela de permissões do app ou em ambas.

Para explicar por que o app acessa as informações de localização, câmera e microfone, siga estas etapas:

  1. Adicione uma atividade que, quando iniciada, fornece uma justificativa para o motivo pelo qual o app executa um tipo específico de ação de acesso a dados. Nessa atividade, defina o atributo android:permission como START_VIEW_PERMISSION_USAGE.

    Se o app for direcionado ao Android 12 ou versões mais recentes, será necessário definir explicitamente um valor para o atributo android:exported.

  2. Adicione o filtro de intent a seguir à atividade recém-adicionada:

    <!-- android:exported required if you target Android 12. -->
    <activity android:name=".DataAccessRationaleActivity"
              android:permission="android.permission.START_VIEW_PERMISSION_USAGE"
              android:exported="true">
           <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on
                your app permission's page in system settings.
                VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information
                icon on the Privacy Dashboard screen. -->
        <intent-filter>
           <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
           <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" />
           <category android:name="android.intent.category.DEFAULT" />
           ...
        </intent-filter>
    </activity>
    
  3. Decida o que a atividade de lógica de acesso a dados exibirá. Por exemplo, você pode exibir o site do app ou um artigo da Central de Ajuda. Para fornecer uma explicação mais detalhada sobre os tipos de dados que o app acessa e quando isso ocorre, processe os extras que o sistema inclui ao invocar a intent de permissão de uso:

Dependendo dos filtros de intent adicionados, os usuários verão um ícone de informações ao lado do nome do app em algumas telas:

  • Se você adicionar o filtro de intent que contém a ação VIEW_PERMISSION_USAGE, os usuários verão o ícone na página de permissões do app nas configurações do sistema.
  • Se você adicionar o filtro de intent que contém a ação VIEW_PERMISSION_USAGE_FOR_PERIOD, os usuários verão o ícone ao lado do nome do app sempre que ele aparecer na tela do painel de privacidade.

Quando os usuários selecionarem esse ícone, a atividade da lógica do app será iniciada.

Um retângulo arredondado no canto superior direito,
         que inclui um ícone da câmera e um ícone do microfone
Figura 2. Indicadores de microfone e câmera, que mostram o acesso recente aos dados.

Indicadores

Em dispositivos com o Android 12, quando um app acessa o microfone ou a câmera, um ícone é exibido na barra de status. Se o app estiver no modo imersivo, o ícone será exibido no canto superior direito da tela. Os usuários podem abrir as Configurações rápidas e selecionar o ícone para ver quais apps estão usando o microfone ou a câmera. A Figura 2 mostra um exemplo de captura de tela que contém os ícones.

Identificar a localização da tela dos indicadores

Caso seu app seja compatível com o modo imersivo ou com uma IU em tela cheia, os indicadores poderão se sobrepor à IU do app. Para ajudar a adaptar a IU a esses indicadores, o sistema introduz o método getPrivacyIndicatorBounds(), que o snippet de código a seguir demonstra. Com essa API, é possível identificar os limites em que os indicadores podem aparecer. Depois, você pode organizar a IU da tela de forma diferente.

Kotlin

view.setOnApplyWindowInsetsListener { view, windowInsets ->
    val indicatorBounds = windowInsets.getPrivacyIndicatorBounds()
    // change your UI to avoid overlapping
    windowInsets
}

Alternadores

Os blocos das Configurações rápidas são rotulados como &quot;Acesso à câmera&quot; e
         &quot;Acesso ao Microfone&quot;
Figura 3. Desativação do microfone e da câmera nas Configurações rápidas.

Em dispositivos compatíveis com o Android 12 ou versões mais recentes, os usuários podem ativar e desativar o acesso à câmera e ao microfone para todos os apps no dispositivo pressionando uma única opção de alternância. Os usuários podem acessar as opções de alternância nas Configurações rápidas, como mostrado na Figura 3, ou na Tela de privacidade nas configurações do sistema.

Alternar a câmera e o microfone afeta todos os apps do dispositivo:

  • Quando o usuário desativa o acesso à câmera, o app recebe um feed em branco.
  • Quando o usuário desativa o acesso ao microfone, o app recebe áudio silencioso. Além disso, os sensores de movimento terão limitação de taxa, independente de você declarar a permissão HIGH_SAMPLING_RATE_SENSORS ou não.

Quando o usuário desativar o acesso à câmera ou ao microfone e iniciar um app que precisa de acesso às informações da câmera ou do microfone, o sistema lembrará o usuário de que o botão desses recursos do dispositivo está desativado.

Verificar a compatibilidade do dispositivo

Para conferir se um dispositivo é compatível com a desativação do microfone e da câmera, adicione a lógica mostrada no snippet de código a seguir:

Kotlin

val sensorPrivacyManager = applicationContext
        .getSystemService(SensorPrivacyManager::class.java)
        as SensorPrivacyManager
val supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE)
val supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA)

Java

SensorPrivacyManager sensorPrivacyManager = getApplicationContext()
        .getSystemService(SensorPrivacyManager.class);
boolean supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE);
boolean supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA);