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
) venivano concesse alle app dotate di firma o autorizzazioni privilegiate. Ciò ha consentito attività di acquisizione del buffer dello schermo senza interruzioni, come l'acquisizione di screenshot o la registrazione del contenuto dello schermo di un dispositivo.
A partire da Android 10, per impedire l'accesso silenzioso ai contenuti dello schermo di un dispositivo, le autorizzazioni per l'acquisizione di video non vengono concesse alle app privilegiate. 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 privilegiate che si affidano a questa funzionalità di acquisizione silenziosa sono interessati da questo requisito.
A partire da Android 10, se non disponi delle autorizzazioni per la firma di acquisizione del buffer dello schermo elencate, la tua app non potrà acquisire i buffer dello schermo senza il consenso dell'utente. Per assicurarti di disporre delle autorizzazioni necessarie, cerca nel file manifest le autorizzazioni per la firma elencate in precedenza. Migra tutte le app privilegiate interessate (come trovate nella tua ricerca) alla classe MediaProjectionManager , che consente a qualsiasi app di terze parti di acquisire 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 quando viene avviata da un'app. In Android 10, le nuove funzionalità della finestra di dialogo includono quanto segue:
- Fornisce associazioni più visibili con l'icona Cast .
- Fornisce ulteriori informazioni sulla riservatezza dei dati a cui è possibile accedere.
- Impedisce agli utenti di nascondere la finestra di dialogo alle avviazioni future: la finestra di dialogo viene visualizzata ogni volta.