Aktualizacje ograniczeń interfejsu innego niż SDK na Androidzie 13

Android 13 zawiera zaktualizowane listy podlegających ograniczeniom interfejsów spoza pakietu SDK opracowane na podstawie współpracy z deweloperami aplikacji na Androida i najnowszych testów wewnętrznych. Zanim ograniczymy dostęp do interfejsów spoza SDK, dbamy o to, aby w miarę możliwości dostępne były publiczne alternatywy.

Jeśli Twoja aplikacja nie jest kierowana na Androida 13, niektóre z tych zmian mogą Cię nie odczuć od razu. Mimo że obecnie możesz używać niektórych interfejsów spoza pakietu SDK (w zależności od docelowego poziomu interfejsu API aplikacji), używanie dowolnej metody lub pola spoza pakietu SDK niesie ze sobą wysokie ryzyko uszkodzenia aplikacji.

Jeśli nie masz pewności, czy Twoja aplikacja korzysta z interfejsów innych niż SDK, możesz przetestować ją, aby to sprawdzić. Jeśli Twoja aplikacja korzysta z interfejsów innych niż SDK, zacznij planować migrację do alternatywnych pakietów SDK. Zdajemy sobie jednak sprawę, że niektóre aplikacje mają odpowiednie przypadki użycia w zakresie interfejsów spoza SDK. Jeśli nie możesz znaleźć alternatywy dla interfejsu innego niż SDK dla funkcji w aplikacji, poproś o nowy publiczny interfejs API.

Wyświetlanie listy zmian w Androidzie 13

Zmiany na liście w Androidzie 13 należą do tej kategorii:

Aby zobaczyć pełną listę interfejsów spoza SDK na Androida 13, pobierz ten plik:

Plik: hiddenapi-flags.csv

Suma kontrolna SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Interfejsy spoza pakietu SDK, które są teraz blokowane w Androidzie 13

Poniżej znajdziesz listę wszystkich interfejsów spoza pakietu SDK, które nie były obsługiwane w Androidzie 12 (poziom API 31), a które są blokowane w Androidzie 13 (poziom API 33). Oznacza to, że te interfejsy należą do listy max-target-s, więc Twoja aplikacja może z nich korzystać tylko wtedy, gdy jest kierowana na Androida 12 (poziom API 31) lub niższy.

Naszym celem jest zapewnienie dostępności publicznych wersji alternatywnych przed wprowadzeniem ograniczeń w interfejsach innych niż SDK. Zdajemy sobie sprawę, że Twoja aplikacja może mieć odpowiednie zastosowanie w przypadku korzystania z tych interfejsów. Jeśli interfejs, z którego korzysta Twoja aplikacja we wcześniejszej wersji, jest teraz zablokowany w Androidzie 13, musisz poprosić o utworzenie nowego publicznego interfejsu API dla tego interfejsu.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.