Spiegare l'accesso a informazioni più sensibili

Le autorizzazioni relative a posizione, microfono e fotocamera consentono alla tua app di accedere a informazioni particolarmente sensibili sugli utenti. La piattaforma include diversi meccanismi, descritti in questa pagina, per aiutare gli utenti a rimanere informati e controllo su quali app possono accedere a posizione, microfono e fotocamera.

Queste funzionalità di sistema che tutelano la privacy non dovrebbero influire sul modo in cui la tua app gestisce le autorizzazioni relative a posizione, microfono e fotocamera, a condizione che tu segua le best practice per la privacy.

In particolare, assicurati di eseguire le seguenti operazioni nella tua app:

  • Attendi di accedere alla fotocamera del dispositivo finché l'utente non avrà concesso l'autorizzazione CAMERA alla tua app.
  • Attendi di accedere al microfono del dispositivo finché l'utente non avrà concesso l'autorizzazione RECORD_AUDIO alla tua app.
  • Attendi che l'utente interagisca con una funzionalità della tua app che richiede accesso alla posizione prima di richiedere l'autorizzazione ACCESS_COARSE_LOCATION o l'autorizzazione ACCESS_FINE_LOCATION, come descritto nella guida su come richiedere le autorizzazioni di accesso alla posizione.
  • Prima di richiedere l'autorizzazione ACCESS_BACKGROUND_LOCATION, attendi che l'utente conceda alla tua app l'autorizzazione ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION.

Dashboard della privacy

Una sequenza temporale verticale mostra le diverse app che hanno
         accesso alle informazioni sulla posizione e a che ora si sono verificati gli accessi
Figura 1. Schermata Utilizzo della posizione, parte delle Norme sulla privacy .

Sui dispositivi supportati con Android 12 o versioni successive, nelle impostazioni di sistema viene visualizzata una schermata Privacy dashboard. In questa schermata, gli utenti possono accedere a schermate separate che mostrano quando le app accedono alle informazioni sulla posizione, sulla fotocamera e sul microfono. Ogni schermata mostra una cronologia dei momenti in cui diverse app hanno avuto accesso a un determinato tipo di dati. La figura 1 mostra la cronologia di accesso ai dati per la posizione informazioni.

Mostrare la motivazione dell'accesso ai dati

La tua app può fornire agli utenti una motivazione per aiutarli a capire perché. accede a informazioni su posizione, fotocamera o microfono. Questa motivazione può essere visualizzata nella nuova schermata della dashboard della privacy, nella schermata delle autorizzazioni dell'app o in entrambe.

Per spiegare perché l'app accede a informazioni su posizione, fotocamera e microfono: completa i seguenti passaggi:

  1. Aggiungi un'attività che, quando è stata avviata, fornisca una motivazione per cui la tua app che esegue un particolare tipo di azione di accesso ai dati. In questa attività, imposta Attributo android:permission a START_VIEW_PERMISSION_USAGE.

    Se la tua app ha come target Android 12 o versioni successive, devi esplicitamente definisci un valore per android:exported .

  2. Aggiungi il seguente filtro per intent all'attività appena aggiunta:

    <!-- 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. Decidi cosa deve essere mostrato nell'attività relativa alla motivazione dell'accesso ai dati. Ad esempio, potresti mostrare il sito web della tua app o un articolo del Centro assistenza. Per fornire un'esperienza una spiegazione dettagliata sui tipi di dati a cui accede l'app, nonché quando si è verificato l'accesso, gestisci gli extra inclusi dal sistema richiama l'intento di utilizzo delle autorizzazioni:

A seconda dei filtri per intent aggiunti, gli utenti vedono un'icona delle informazioni accanto al nome dell'app in alcune schermate:

  • Se aggiungi il filtro per intent che contiene VIEW_PERMISSION_USAGE gli utenti vedranno l'icona nella pagina delle autorizzazioni dell'app nelle impostazioni di sistema. Puoi applicare questa azione a tutte le autorizzazioni di runtime.
  • Se aggiungi il filtro per intent che contiene VIEW_PERMISSION_USAGE_FOR_PERIOD, gli utenti vedono l'icona accanto al tuo nome dell'app ogni volta che l'app viene visualizzata nella schermata Dashboard della privacy.

Quando gli utenti selezionano l'icona, viene avviata l'attività logica della tua app.

Un rettangolo arrotondato nell&#39;angolo in alto a destra, che
         include un&#39;icona a forma di fotocamera e un&#39;icona di microfono
Figura 2. Gli indicatori del microfono e della fotocamera, che mostrano l'accesso recente ai dati.

Indicatori

Sui dispositivi con Android 12 o versioni successive, quando un'app accede sul microfono o sulla fotocamera, nella barra di stato viene visualizzata un'icona. Se l'app è in modalità immersiva, l'icona viene visualizzata nell'angolo in alto a destra dello schermo. Gli utenti possono aprire le Impostazioni rapide e selezionare l'icona per visualizzare le app che stanno attualmente utilizzando il microfono o la fotocamera. La Figura 2 mostra uno screenshot di esempio che contiene le icone.

Identificare la posizione degli indicatori sullo schermo

Se la tua app supporta la modalità immersiva o un'interfaccia utente a schermo intero, gli indicatori potrebbero sovrapporsi temporaneamente all'interfaccia utente dell'app. Per adattare la UI a questi indicatori, il sistema introduce getPrivacyIndicatorBounds() , che il seguente snippet di codice dimostra. Utilizzando questa API, è possibile identificare i limiti in cui potrebbero comparire gli indicatori. Puoi quindi decidere di organizzare l'UI dello schermo in modo diverso.

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

Pulsanti di attivazione/disattivazione

I riquadri delle Impostazioni rapide sono etichettati come &quot;Accesso alla fotocamera&quot; e
          &quot;Accesso al microfono&quot;
Figura 3. Attivazione/disattivazione di microfono e fotocamera Impostazioni rapide.

Sui dispositivi supportati con Android 12 o versioni successive, gli utenti possono attivare e disattivare l'accesso alla fotocamera e al microfono per tutte le app sul dispositivo premendo un'unica opzione di attivazione/disattivazione. Gli utenti possono accedere alle opzioni di attivazione/disattivazione dalle Impostazioni rapide, come mostrato nella Figura 3, o dalla schermata Privacy nelle impostazioni di sistema.

I pulsanti di attivazione/disattivazione della fotocamera e del microfono influiscono su tutte le app sul dispositivo:

  • Quando l'utente disattiva l'accesso alla videocamera, la tua app riceve un feed della videocamera vuoto.
  • Quando l'utente disattiva l'accesso al microfono, l'app riceve l'audio silenzioso. Inoltre, i sensori di movimento con limitazioni di frequenza, indipendentemente dal fatto che tu abbia dichiarato HIGH_SAMPLING_RATE_SENSORS: autorizzazione.

Quando l'utente disattiva l'accesso alla fotocamera o al microfono: avvia un'app che richiede l'accesso alle informazioni della fotocamera o del microfono, ricorda all'utente che l'opzione di attivazione/disattivazione a livello di dispositivo è disattivata.

Controllare l'assistenza del dispositivo

Per verificare se un dispositivo supporta i pulsanti di attivazione/disattivazione del microfono e della videocamera, aggiungi la logica riportata nel seguente snippet di codice:

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