W systemie Android 9 i starszych uprawnienia do przechwytywania bufora ekranu ( READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
i CAPTURE_SECURE_VIDEO_OUTPUT
) były przyznawane aplikacjom, które miały albo uprawnienia podpisu, albo uprawnienia uprzywilejowane. Umożliwiło to płynne przechwytywanie bufora ekranu, takie jak robienie zrzutów ekranu lub nagrywanie zawartości ekranu urządzenia.
Począwszy od Androida 10, aby uniemożliwić cichy dostęp do zawartości ekranu urządzenia, uprawnienia do przechwytywania wideo nie są przyznawane uprzywilejowanym aplikacjom. Dostęp bez zgody użytkownika jest ograniczony i przyznawany tylko aplikacjom, które mają uprawnienia do podpisu. To wymaganie dotyczy producentów urządzeń, którzy uruchamiają uprzywilejowane aplikacje korzystające z tej funkcji dyskretnego przechwytywania.
Począwszy od Androida 10, jeśli nie masz wymienionych uprawnień do przechwytywania bufora ekranu, Twoja aplikacja nie może przechwytywać buforów ekranu bez zgody użytkownika. Aby upewnić się, że masz potrzebne uprawnienia, wyszukaj w pliku manifestu wymienione wcześniej uprawnienia do podpisu. Przeprowadź migrację wszystkich uprzywilejowanych aplikacji, których dotyczy problem (znalezionych w wyszukiwaniu) do klasy MediaProjectionManager , która umożliwia dowolnej aplikacji innej firmy przechwytywanie buforów ekranu bez uprawnień, ale za zgodą użytkownika. Ten przepływ wyświetla okno dialogowe, które monituje użytkownika o zezwolenie na przechwytywanie ekranu, gdy aplikacja go zainicjuje. W systemie Android 10 nowe funkcje okna dialogowego obejmują:
- Zapewnia bardziej widoczne skojarzenia z ikoną Cast .
- Zawiera więcej informacji o wrażliwości danych, do których można uzyskać dostęp.
- Uniemożliwia użytkownikom ukrywanie okna dialogowego przy przyszłych inicjacjach: okno dialogowe jest wyświetlane za każdym razem.