Aktualizacje ograniczeń interfejsu innego niż SDK na Androidzie 13

Android 13 zawiera zaktualizowane listy ograniczonych interfejsów spoza pakietu SDK utworzone na podstawie współpracy z deweloperami aplikacji na Androida i najnowszych testów wewnętrznych. W miarę możliwości dbamy o to, aby dostępne były publiczne alternatywy, zanim ograniczymy dostęp do interfejsów innych niż SDK.

Jeśli Twoja aplikacja nie jest kierowana na Androida 13, niektóre z tych zmian mogą nie od razu Cię dotyczyć. Mimo że obecnie można korzystać z niektórych interfejsów innych niż SDK (w zależności od docelowego poziomu interfejsu API aplikacji), użycie dowolnej metody lub pola spoza pakietu SDK zawsze wiąże się z dużym ryzykiem uszkodzenia aplikacji.

Jeśli nie masz pewności, czy Twoja aplikacja korzysta z interfejsów innych niż SDK, możesz to przetestować. Jeśli Twoja aplikacja wymaga interfejsów innych niż SDK, zacznij planować migrację na alternatywne wersje pakietów SDK. Zdajemy sobie jednak sprawę, że niektóre aplikacje mogą prawidłowo korzystać z interfejsów innych niż SDK. Jeśli nie możesz znaleźć w swojej aplikacji interfejsu innego niż interfejs SDK, musisz poprosić o nowy publiczny interfejs API.

Wyświetlanie listy zmian w Androidzie 13

Zmiany na liście w Androidzie 13 zaliczają się do tej kategorii:

  • Interfejsy inne niż SDK, które nie były obsługiwane w Androidzie 12 (poziom interfejsu API 31), które są zablokowane w Androidzie 13.

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

Plik: hiddenapi-flags.csv

Suma kontrolna SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Interfejsy inne niż SDK, które są teraz blokowane w Androidzie 13

W poniższym polu kodu znajdziesz wszystkie interfejsy inne niż SDK, które nie były obsługiwane w Androidzie 12 (poziom interfejsu API 31), które zostały zablokowane w Androidzie 13 (poziom API 33). Te interfejsy znajdują się na liście max-target-s, więc aplikacja może z nich korzystać tylko wtedy, gdy jest kierowana na Androida 12 (poziom API 31) lub niższy.

Chcemy upewnić się, że dostępne są publiczne alternatywne rozwiązania, zanim nałożymy ograniczenia na interfejsy inne niż SDK. Rozumiemy, że możesz ich używać w swojej aplikacji. Jeśli interfejs, z którego korzysta Twoja aplikacja w poprzedniej wersji, jest teraz zablokowany w Androidzie 13, musisz poprosić o nowy publiczny interfejs 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.