In Android 9 e versioni precedenti, le autorizzazioni di acquisizione del buffer dello schermo ( READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
e CAPTURE_SECURE_VIDEO_OUTPUT
) sono state concesse alle app con autorizzazioni di firma o privilegiate. Ciò ha consentito attività di acquisizione del buffer dello schermo senza interruzioni, come l'acquisizione di schermate o la registrazione del contenuto dello schermo di un dispositivo.
A partire da Android 10, per impedire l'accesso invisibile ai contenuti dello schermo di un dispositivo, le autorizzazioni di acquisizione video non vengono concesse alle app con privilegi. L'accesso senza il consenso dell'utente è limitato e concesso solo alle app che dispongono di autorizzazioni di firma. I produttori di dispositivi che eseguono app con privilegi che si basano su questa funzionalità di acquisizione silenziosa sono interessati da questo requisito.
A partire da Android 10, se non disponi delle autorizzazioni di firma di acquisizione del buffer dello schermo elencate, la tua app non può acquisire i buffer dello schermo senza il consenso dell'utente. Per assicurarti di disporre delle autorizzazioni necessarie, cerca nel file manifest le autorizzazioni di firma elencate in precedenza. Migra tutte le app con privilegi interessate (come trovate nella tua ricerca) alla classe MediaProjectionManager , che consente a qualsiasi app di terze parti di acquisire i buffer dello schermo senza autorizzazioni, ma con il consenso dell'utente. Questo flusso visualizza una finestra di dialogo che richiede all'utente di consentire l'acquisizione dello schermo all'avvio di un'app. In Android 10, le nuove funzionalità della finestra di dialogo includono quanto segue:
- Fornisce associazioni più visibili con l'icona Trasmetti .
- Fornisce ulteriori informazioni sulla sensibilità dei dati a cui è possibile accedere.
- Impedisce agli utenti di nascondere la finestra di dialogo alle future iniziazioni: la finestra di dialogo viene visualizzata ogni volta.