W systemie Android 9 i starszych uprawnienia do przechwytywania bufora ekranu ( READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
i CAPTURE_SECURE_VIDEO_OUTPUT
) zostały przyznane aplikacjom, które miały uprawnienia do podpisu lub uprawnienia uprzywilejowane. Umożliwiło to bezproblemowe 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 aplikacjom uprzywilejowanym. Dostęp bez zgody użytkownika jest ograniczony i przyznawany tylko aplikacjom, które mają uprawnienia do podpisywania. Wymaganie to dotyczy producentów urządzeń, na których uruchamiane są uprzywilejowane aplikacje korzystające z funkcji cichego przechwytywania.
Jeśli w systemie Android 10 nie masz wymienionych uprawnień do przechwytywania podpisów w buforze ekranu, Twoja aplikacja nie będzie mogła przechwytywać buforów ekranu bez zgody użytkownika. Aby upewnić się, że masz potrzebne uprawnienia, przeszukaj plik manifestu pod kątem wymienionych wcześniej uprawnień do podpisów. Przeprowadź migrację wszystkich uprzywilejowanych aplikacji, których to dotyczy (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 z monitem użytkownika o zezwolenie na przechwytywanie ekranu, gdy aplikacja je inicjuje. W systemie Android 10 nowe funkcje okna dialogowego obejmują:
- Zapewnia bardziej widoczne skojarzenia z ikoną Cast .
- Zawiera więcej informacji na temat 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.