В Android 13 обновлены списки ограниченных интерфейсов, не использующих SDK, на основе сотрудничества с разработчиками Android и последних внутренних тестов. По возможности мы обеспечиваем наличие общедоступных альтернатив, прежде чем ограничивать использование интерфейсов, не использующих SDK.
Если ваше приложение не ориентировано на Android 13, некоторые из этих изменений могут не сразу повлиять на вас. Однако, хотя в настоящее время вы можете использовать некоторые интерфейсы, не связанные с SDK ( в зависимости от целевого уровня API вашего приложения ), использование любого метода или поля, не связанного с SDK, всегда сопряжено с высоким риском нарушения работы вашего приложения.
If you are unsure if your app uses non-SDK interfaces, you can test your app to find out. If your app relies on non-SDK interfaces, you should begin planning a migration to SDK alternatives. Nevertheless, we understand that some apps have valid use cases for using non-SDK interfaces. If you cannot find an alternative to using a non-SDK interface for a feature in your app, you should request a new public API .
Изменения в списке для Android 13
Изменения в Android 13, касающиеся списка продуктов, относятся к следующей категории:
- Интерфейсы, не поддерживающие SDK, которые не были доступны в Android 12 (уровень API 31) и заблокированы в Android 13 .
Полный список всех интерфейсов для Android 13, не входящих в состав SDK, можно получить, загрузив следующий файл:
Файл: hiddenapi-flags.csv
Контрольная сумма SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
Интерфейсы, не относящиеся к SDK, которые теперь заблокированы в Android 13.
В приведенном ниже блоке кода перечислены все неподдерживаемые в Android 12 (уровень API 31) интерфейсы, не входящие в состав SDK, но заблокированные в Android 13 (уровень API 33). То есть эти интерфейсы входят в список max-target-s , поэтому ваше приложение сможет использовать их только в том случае, если оно ориентировано на Android 12 (уровень API 31) или более ранние версии.
Наша цель — убедиться в наличии общедоступных альтернатив, прежде чем ограничивать интерфейсы, не использующие SDK, и мы понимаем, что ваше приложение может иметь веские основания для использования этих интерфейсов. Если интерфейс, который ваше приложение использовало в предыдущей версии, теперь заблокирован в Android 13, вам следует запросить новый общедоступный API для этого интерфейса.
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.