Czytanie ekranu z ograniczeniami

W Androidzie 9 i starszych uprawnienia do przechwytywania bufora ekranu (READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUTCAPTURE_SECURE_VIDEO_OUTPUT) były przyznawane aplikacjom, które miały podpisaną lub uprzywilejowaną sygnaturę. Umożliwiało to płynne wykonywanie czynności związanych z przechwytywaniem bufora ekranu, takich jak robienie zrzutów ekranu czy nagrywanie zawartości ekranu urządzenia.

Od Androida 10, aby zapobiec dostępowi do treści na ekranie urządzenia bez pytania o zgodę, uprawnienia do nagrywania filmów nie są przyznawane aplikacjom uprzywilejowanym. Dostęp bez zgody użytkownika jest ograniczony i przyznawany tylko aplikacjom, które mają uprawnienia do podpisywania. Ten wymóg dotyczy producentów urządzeń, na których działają aplikacje korzystające z funkcji cichego przechwytywania.

Od Androida 10, jeśli nie masz wymienionych uprawnień do rejestrowania sygnatury bufora ekranu, Twoja aplikacja nie może rejestrować buforów ekranu bez zgody użytkownika. Aby mieć pewność, że masz odpowiednie uprawnienia, wyszukaj w pliku pliku manifestu wymienione wcześniej uprawnienia dotyczące podpisu. Przeprowadź migrację wszystkich dotkniętych uprawnionych aplikacji (znajdowanych w wynikach wyszukiwania) do klasy MediaProjectionManager, która umożliwia dowolnej aplikacji innej firmy przechwytywanie buforów ekranu bez uprawnień, ale za zgodą użytkownika. W ramach tego procesu wyświetla się okno, w którym użytkownik jest proszony o zezwolenie na przechwytywanie ekranu, gdy aplikacja go zainicjuje. W Androidzie 10 nowe funkcje okna dialogowego to:

  • zapewnia bardziej widoczne powiązania z ikoną Przesyłaj;
  • Zawiera więcej informacji o wrażliwości danych, do których można uzyskać dostęp.
  • Uniemożliwia użytkownikom ukrycie okna w przyszłości: okno będzie wyświetlane za każdym razem.