Обновления ограничений интерфейса, не связанных с SDK, в Android 13

Android 13 включает обновленные списки ограниченных интерфейсов не-SDK, основанные на сотрудничестве с разработчиками Android и последнем внутреннем тестировании. По возможности мы обеспечиваем доступность общедоступных альтернатив, прежде чем ограничивать интерфейсы не-SDK.

Если ваше приложение не ориентировано на Android 13, некоторые из этих изменений могут не сразу вас затронуть. Однако, хотя вы в настоящее время можете использовать некоторые интерфейсы не SDK ( в зависимости от целевого уровня API вашего приложения ), использование любого метода или поля не SDK всегда несет высокий риск поломки вашего приложения.

Если вы не уверены, использует ли ваше приложение интерфейсы, отличные от SDK, вы можете протестировать его , чтобы узнать. Если ваше приложение использует интерфейсы, отличные от SDK, вам следует начать планировать миграцию на альтернативы SDK. Тем не менее, мы понимаем, что некоторые приложения имеют допустимые варианты использования интерфейсов, отличных от SDK. Если вы не можете найти альтернативу использованию интерфейса, отличного от SDK, для функции в вашем приложении, вам следует запросить новый публичный API .

Список изменений для Android 13

Список изменений в Android 13 делится на следующие категории:

Для получения полного списка всех интерфейсов, не входящих в SDK, для Android 13 загрузите следующий файл:

Файл: hiddenapi-flags.csv

Контрольная сумма SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Интерфейсы, не относящиеся к SDK, которые теперь заблокированы в Android 13

В следующем поле кода перечислены все интерфейсы, не относящиеся к SDK, которые не поддерживались в Android 12 (уровень API 31), которые заблокированы в 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.