Android 12 представляет множество новых функций и API для разработчиков. Разделы ниже помогут вам узнать о новых функциях для ваших приложений и начать работу с соответствующими API.
Подробный список новых, измененных и удаленных API см. в отчете об изменениях API . Подробную информацию о новых API см. в справочнике Android API — новые API выделены для большей наглядности. Также, чтобы узнать о том, как изменения платформы могут повлиять на ваши приложения, обязательно ознакомьтесь с изменениями в поведении Android 12 для приложений, ориентированных на Android 12 , и для всех приложений .
пользовательский опыт
Материал Ты
В Android 12 представлен новый язык дизайна под названием Material You , который поможет вам создавать более персонализированные и красивые приложения. Чтобы внедрить все последние обновления Material Design 3 в ваши приложения, попробуйте альфа-версию Material Design Components .

Улучшения виджетов
В Android 12 обновлен существующий API виджетов для улучшения пользовательского и разработческого опыта на платформе и в лаунчерах. Мы создали руководство, которое поможет вам убедиться в совместимости вашего виджета с Android 12 и обновить его новыми функциями.
Для получения более подробной информации см. раздел «Улучшения виджетов Android 12» .
Вставка расширенного контента
В Android 12 представлен новый унифицированный API, позволяющий вашему приложению получать расширенный контент из любого доступного источника: буфера обмена, клавиатуры или путем перетаскивания.
Для получения более подробной информации см. раздел «Получение расширенного контента» .
API для заставок приложений
В Android 12 появилась новая анимация запуска приложений, включающая в себя движение внутрь приложения с момента запуска, заставку с иконкой приложения и переход к самому приложению. Подробнее см. руководство разработчика по заставкам .
API со скругленными углами
В Android 12 появились RoundedCorner и WindowInsets.getRoundedCorner(int position) , которые задают радиус и центральную точку для закругленных углов.
Для получения более подробной информации см. раздел «Закругленные углы» .
Насыщенные тактильные ощущения
Android 12 расширяет возможности создания информативной тактильной обратной связи для событий пользовательского интерфейса, захватывающих и приятных эффектов для игр, а также тактильной обратной связи, привлекающей внимание, для повышения производительности.
Эффекты привода
В Android 12 добавлены выразительные эффекты, такие как низкая частота тактильной обратной связи , которые используют преимущества более широкой полосы частот новейших актуаторов. Разработчики игр теперь могут независимо получать доступ к нескольким различным актуаторам в игровых контроллерах, чтобы синхронно воспроизводить один и тот же эффект или применять разные тактильные эффекты к нескольким актуаторам. Разработчикам мы рекомендуем использовать константы и примитивы в качестве строительных блоков для создания сложных тактильных эффектов — константы для улучшения событий пользовательского интерфейса и компоновщик тактильных эффектов для упорядочивания примитивов для более сложных эффектов. Эти API доступны для тестирования на устройствах Pixel 4, и мы продолжаем работать с нашими партнерами-производителями устройств, чтобы предоставить пользователям всей экосистемы новейшую поддержку тактильной обратной связи.
Тактильные эффекты, сопряженные со звуком
Приложения для Android 12 могут генерировать тактильную обратную связь, основанную на аудиосессии, с помощью вибратора телефона. Это открывает возможности для более захватывающих игр и звуковых впечатлений. Например, рингтоны с тактильной обратной связью могут помочь идентифицировать звонящих, а гоночная игра может имитировать ощущение пересеченной местности.
Для получения более подробной информации см. справочную документацию HapticGenerator .
Поиск приложений
В Android 12 представлен AppSearch — высокопроизводительный поисковый движок, работающий непосредственно на устройстве и предоставляемый в качестве системной службы. AppSearch позволяет приложениям индексировать структурированные данные и осуществлять поиск по ним с помощью встроенных возможностей полнотекстового поиска. Кроме того, AppSearch поддерживает нативные функции поиска, такие как высокоэффективное индексирование и извлечение данных, многоязычная поддержка и ранжирование по релевантности.

AppSearch бывает двух типов: локальный индекс для вашего приложения, совместимый со старыми версиями Android, или централизованный индекс, поддерживаемый для всей системы в Android 12. Используя централизованный индекс, ваше приложение может разрешить отображение своих данных на интерфейсах системы с помощью предустановленного интеллектуального компонента. Какие именно данные будут отображаться на интерфейсах системы, зависит от производителя. Кроме того, ваше приложение может безопасно обмениваться данными с другими приложениями, позволяя им также осуществлять поиск по этим данным.
Узнайте больше об AppSearch в руководстве для разработчиков и начните использовать его с библиотекой AppSearch Jetpack , которая предоставляет удобный для разработчиков API, а также поддержку обработки аннотаций.
Игровой режим
API игрового режима и возможности управления игровым режимом позволяют оптимизировать игровой процесс, расставляя приоритеты для таких характеристик, как производительность или время автономной работы, на основе настроек пользователя или конфигураций конкретной игры.
Для получения более подробной информации см. раздел «Игровой режим» .
Рекомендации и улучшения по использованию режима «картинка в картинке» (PiP).
В Android 12 представлены следующие улучшения для режима «картинка в картинке»:
Поддержка новых жестов PiP
В Android 12 теперь поддерживаются функции сохранения и масштабирования с помощью жестов «щипка» для окна «картинка в картинке»:
Чтобы спрятать окно, пользователь может перетащить его к левому или правому краю. Чтобы вытащить окно, пользователь может либо коснуться видимой части спрятанного окна, либо перетащить его.
Теперь пользователь может изменять размер окна «картинка в картинке» с помощью масштабирования жестом «щипок».
Рекомендуемые новые функции, обеспечивающие удобный и плавный переход между режимами «картинка в картинке».
В Android 12 были внесены значительные косметические улучшения в анимированные переходы между полноэкранным режимом и режимом «картинка в картинке». Мы настоятельно рекомендуем внедрить все применимые изменения; после этого они автоматически масштабируются под большие экраны, такие как складные устройства и планшеты, без каких-либо дополнительных действий.
К таким характеристикам относятся следующие:
Используйте флаг
setAutoEnterEnabledдля более плавного перехода в режим «картинка в картинке» при свайпе вверх к главному экрану в режиме жестовой навигации. Ранее Android ждал завершения анимации свайпа вверх к главному экрану, прежде чем окно «картинка в картинке» плавно появлялось.Более плавная анимация при входе и выходе из режима «картинка в картинке»
Флаг
SourceRectHintтеперь используется повторно для обеспечения более плавной анимации при входе и выходе из режима «картинка в картинке».Флаг
SeamlessResizeEnabledобеспечивает гораздо более плавную анимацию перекрестного затухания при изменении размера невидеоконтента в окне «картинка в картинке». Ранее изменение размера невидеоконтента в окне «картинка в картинке» могло создавать резкие визуальные артефакты.
Новая функция уведомлений о телефонных звонках позволяет ранжировать важность входящих вызовов.
В Android 12 добавлен новый стиль уведомлений Notification.CallStyle для телефонных звонков. Использование этого шаблона позволяет вашему приложению указывать на важность активных звонков, отображая заметный значок с временем звонка в строке состояния; пользователь может нажать на этот значок, чтобы вернуться к своему звонку.
Поскольку входящие и текущие звонки наиболее важны для пользователей, этим уведомлениям отводится наивысший приоритет. Такой рейтинг также позволяет системе потенциально перенаправлять эти приоритетные звонки на другие устройства.
Реализуйте следующий код для всех типов вызовов.
Котлин
// Create a new call with the user as caller. val incoming_caller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as caller. Person incoming_caller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
Используйте forIncomingCall() для создания уведомления о входящем звонке в стиле вызова.
Котлин
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller);
Используйте forOngoingCall() для создания уведомления о текущем звонке в стиле текущего вызова.
Котлин
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller);
Используйте forScreeningCall() для создания уведомления в стиле вызова, предназначенного для отсеивания звонящего.
Котлин
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
Расширенная поддержка изображений для уведомлений.
В Android 12 теперь можно улучшить взаимодействие с уведомлениями вашего приложения, добавив анимированные изображения в уведомления MessagingStyle() и BigPictureStyle() . Кроме того, ваше приложение теперь может позволить пользователям отправлять графические сообщения при ответе на сообщения из панели уведомлений.
Улучшения в режиме погружения для навигации жестами.
В Android 12 существующие функции упрощены для удобства пользователей при выполнении команд навигации жестами в иммерсивном режиме . Кроме того, Android 12 обеспечивает обратную совместимость с режимом «липкого» иммерсивного отображения .
Недавние ссылки, которыми поделились (только Pixel)
На устройствах Pixel теперь пользователи могут делиться ссылками на недавно просмотренный веб-контент непосредственно с экрана «Недавние». После просмотра контента в приложении пользователь может провести пальцем по экрану «Недавние», найти приложение, в котором он просматривал контент, а затем нажать на кнопку ссылки, чтобы скопировать или поделиться URL-адресом.
Для получения дополнительной информации см. раздел «Включение общего доступа к URL-адресам последних просмотров» .
Безопасность и конфиденциальность
Панель управления конфиденциальностью
На поддерживаемых устройствах под управлением Android 12 и выше в системных настройках появляется экран «Панель конфиденциальности». На этом экране пользователи могут получить доступ к отдельным экранам, отображающим, когда приложения получают доступ к информации о местоположении, камере и микрофоне. На каждом экране отображается хронология доступа различных приложений к определенному типу данных. На рисунке 1 показана хронология доступа к данным о местоположении.
Ваше приложение может предоставить пользователям объяснение , помогающее им понять, почему ваше приложение получает доступ к информации о местоположении, камере или микрофоне. Это объяснение может отображаться на новом экране панели управления конфиденциальностью, на экране разрешений вашего приложения или на обоих экранах.
разрешения Bluetooth
В Android 12 появились разрешения BLUETOOTH_SCAN , BLUETOOTH_ADVERTISE и BLUETOOTH_CONNECT . Эти разрешения упрощают взаимодействие приложений, ориентированных на Android 12, с устройствами Bluetooth , особенно для приложений, которым не требуется доступ к местоположению устройства.
Обновите заявления о разрешении Bluetooth в вашем приложении.
Чтобы подготовить ваше устройство к работе с Android 12 или выше, обновите логику вашего приложения. Вместо объявления устаревшего набора разрешений Bluetooth , объявите более современный набор разрешений Bluetooth .
Поиск группы разрешений
В Android 12 и более поздних версиях можно запросить информацию о том, как система организует предоставляемые платформой разрешения в группы разрешений:
- Чтобы определить группу разрешений, в которую система поместила разрешение, определенное платформой, вызовите метод
getGroupOfPlatformPermission(). - Чтобы определить права доступа, определенные платформой и присвоенные системой конкретной группе прав доступа, вызовите
getPlatformPermissionsForGroup().
Скрыть окна наложения приложения
Чтобы предоставить разработчикам больше контроля над тем, что видят пользователи при взаимодействии с приложением разработчика, Android 12 вводит возможность скрывать окна наложения, которые отображаются приложениями, имеющими разрешение SYSTEM_ALERT_WINDOW .
После объявления разрешения HIDE_OVERLAY_WINDOWS приложение может вызвать метод setHideOverlayWindows() , чтобы указать, что все окна типа TYPE_APPLICATION_OVERLAY должны быть скрыты, когда собственное окно приложения видимо. Приложения могут использовать этот метод при отображении конфиденциальных экранов, например, при подтверждении транзакций.
Приложениям, отображающим окна типа TYPE_APPLICATION_OVERLAY следует рассмотреть альтернативные варианты, которые могут быть более подходящими для их конкретного случая, такие как «картинка в картинке» или «пузырьки» .
Флаг защиты разрешения известных подписантов
Начиная с Android 12, атрибут knownCerts для разрешений на уровне подписи позволяет ссылаться на дайджесты известных сертификатов подписи во время объявления.
Ваше приложение может объявить этот атрибут и использовать флаг knownSigner , чтобы разрешить устройствам и приложениям предоставлять разрешения на подпись другим приложениям , без необходимости подписывать приложения во время производства и отгрузки устройства.
Подтверждение характеристик устройства
В Android 12 расширен набор приложений, которые могут проверять свойства устройства, указанные в сертификате аттестации, при генерации этими приложениями нового ключа.
Начиная с Android 9 (уровень API 28), владельцы политик устройств (DPO) , использующие Keymaster 4.0 или выше, могут проверять свойства устройства в этих сертификатах аттестации. Начиная с Android 12, любое приложение, ориентированное на Android 12 (уровень API 31) или выше, может выполнять эту проверку с помощью метода setDevicePropertiesAttestationIncluded() .
Сгенерированные свойства устройства включают следующие поля Build :
-
BRAND -
DEVICE -
MANUFACTURER -
MODEL -
PRODUCT
Безопасные действия уведомлений на экране блокировки
Начиная с Android 12, класс Notification.Action.Builder поддерживает метод setAuthenticationRequired() , который позволяет вашему приложению требовать разблокировки устройства перед выполнением определенного действия уведомления. Этот метод помогает добавить дополнительный уровень безопасности к уведомлениям на заблокированных устройствах.
Локализованные строки для BiometricPrompt
В Android 12 представлены новые API, которые помогут улучшить пользовательский опыт биометрической аутентификации в вашем приложении. Новый вложенный класс BiometricManager.Strings включает методы getButtonLabel() , getPromptMessage() и getSettingName() , которые позволяют вашему приложению получать удобочитаемую и локализованную метку кнопки, сообщение-подсказку или имя настройки приложения. Используйте эти метки для создания более точных инструкций для пользователя, специфичных для используемых методов биометрической аутентификации, например, «Использовать разблокировку по лицу» или «Использовать отпечаток пальца для продолжения».
СМИ
Совместимое перекодирование медиафайлов
Начиная с Android 12 (уровень API 31), система может автоматически перекодировать видео HEVC (H.265) и HDR (HDR10 и HDR10+), записанные на устройстве, в формат AVC (H.264), который широко совместим со стандартными плеерами. Это позволяет использовать преимущества современных кодеков, если они доступны, без ущерба для совместимости со старыми приложениями.
Для получения более подробной информации см. раздел «Поддерживаемое перекодирование мультимедиа» .
класс исполнительских искусств
В Android 12 представлен стандарт, называемый классом производительности . Класс производительности определяет возможности оборудования, выходящие за рамки базовых требований Android. Каждое устройство Android объявляет поддерживаемый им класс производительности. Разработчики могут проверять класс производительности устройства во время выполнения и предоставлять улучшенные возможности, которые в полной мере используют потенциал устройства.
Более подробную информацию см. в разделе «Производительность» .
Улучшения в кодировании видео
В Android 12 определен стандартный набор клавиш для управления значением параметра квантизации (QP) при кодировании видео, что позволяет разработчикам избегать кода, специфичного для конкретного производителя.
Новые ключи доступны в API MediaFormat , а также в библиотеке мультимедиа NDK .
Начиная с Android 12, видеокодеры устанавливают минимальный порог качества. Это гарантирует, что пользователи не столкнутся с крайне низким качеством при кодировании видео с высокой сложностью сцен.
Аудиофокус
Начиная с Android 12 (уровень API 31), когда приложение запрашивает фокус на воспроизведение звука, в то время как другое приложение находится в фокусе и воспроизводит звук, система плавно заглушает воспроизводимое приложение.
Более подробную информацию см. в разделе «Аудиофокус в Android 12 и выше» .
Обновления MediaDrm
Чтобы определить, требуется ли компонент защищенного декодера для текущих API MediaDrm , необходимо выполнить следующие шаги:
- Создайте
MediaDrm. - Чтобы получить идентификатор сессии, откройте сессию.
- Создайте объект
MediaCrypto, используя идентификатор сессии. - Вызовите
MediaCrypto.requiresSecureDecoderComponent(mimeType).
С помощью новых методов requiresSecureDecoder(@NonNull String mime) и requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) вы можете определить это сразу после создания объекта MediaDrm .
Камера
Расширения поставщика Camera2
Многие из наших партнеров-производителей устройств разработали собственные расширения для камеры — такие как боке, HDR, ночной режим и другие — которые они хотят использовать в приложениях для создания уникальных возможностей на своих устройствах. Библиотека CameraX уже поддерживает эти пользовательские расширения от поставщиков. В Android 12 эти расширения от поставщиков теперь доступны непосредственно в платформе.
Это дополнение помогает приложениям со сложной реализацией Camera2 использовать преимущества расширений сторонних разработчиков без необходимости вносить существенные изменения в устаревший код. API расширений Camera2 предоставляют точно такой же набор расширений, как и в CameraX, и они уже поддерживаются на многих различных устройствах , поэтому вы можете использовать их без какой-либо дополнительной настройки.
Для получения более подробной информации см. CameraExtensionCharacteristics .
Поддержка четырехканального датчика Байера для камер
Сегодня многие устройства Android оснащены сверхвысокоразрешающими датчиками камеры, как правило, с матрицами Quad или Nona Bayer, что обеспечивает большую гибкость в плане качества изображения и работы в условиях низкой освещенности. Android 12 представляет новые API платформы, которые позволяют сторонним приложениям в полной мере использовать преимущества этих универсальных датчиков. Новые API поддерживают уникальное поведение этих датчиков и учитывают, что они могут поддерживать различные конфигурации и комбинации потоков при работе в режиме полного разрешения или «максимального разрешения» по сравнению с режимом «по умолчанию».
Графика и изображения
Предоставьте приложениям прямой доступ к следам надгробий.
Начиная с Android 12, вы можете получить доступ к встроенному механизму завершения работы приложения в виде буфера протокола через метод ApplicationExitInfo.getTraceInputStream() . Буфер протокола сериализуется с использованием этой схемы . Ранее единственным способом получить доступ к этой информации был Android Debug Bridge (adb).
Для получения дополнительной информации см. раздел «Предоставление приложениям прямого доступа к трассировкам удаленных объектов».
поддержка изображений AVIF
В Android 12 появилась поддержка изображений, использующих формат AV1 (AVIF). AVIF — это формат-контейнер для изображений и последовательностей изображений, закодированных с использованием AV1. AVIF использует внутрикадровое закодированное содержимое видео, полученное в результате сжатия. Это значительно улучшает качество изображения при том же размере файла по сравнению со старыми форматами изображений, такими как JPEG. Для более подробного ознакомления с преимуществами этого формата см. статью в блоге Джейка Арчибальда.
Упрощенное размытие, цветовые фильтры и другие эффекты.
В Android 12 добавлен новый RenderEffect , который применяет распространенные графические эффекты, такие как размытие, цветовые фильтры, эффекты шейдеров Android и многое другое, к элементам View и иерархиям рендеринга. Эффекты можно комбинировать как цепные эффекты (состоящие из внутреннего и внешнего эффекта) или как смешанные эффекты. Различные устройства Android могут поддерживать или не поддерживать эту функцию из-за ограниченной вычислительной мощности.
Эффекты также можно применять к базовому узлу RenderNode для View , вызвав метод View.setRenderEffect(RenderEffect) .
Для реализации RenderEffect :
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Встроенное декодирование анимированных изображений
В Android 12 API ImageDecoder из NDK был расширен для декодирования всех кадров и данных о времени из изображений, использующих анимированные форматы GIF и WebP . При появлении в Android 11 этот API декодировал только первое изображение из анимаций в этих форматах.
Используйте ImageDecoder вместо сторонних библиотек, чтобы еще больше уменьшить размер APK-файла и воспользоваться преимуществами будущих обновлений, связанных с безопасностью и производительностью.
Для получения более подробной информации об API обратитесь к справочнику API и примеру на GitHub .
Подключение
Поддержание работоспособности сопутствующих приложений
Для обеспечения бесперебойной работы сопутствующих приложений, управляющих устройством, Android 12 представляет API, выполняющие следующие функции:
- Позволяет активировать приложение, когда сопутствующее устройство находится в зоне действия.
- Гарантируем, что процесс будет продолжаться, пока устройство находится в зоне действия.
Для использования API ваши устройства должны быть подключены с помощью Companion Device Manager . Дополнительную информацию см. в CompanionDeviceManager.startObservingDevicePresence() и CompanionDeviceService.onDeviceAppeared() .
Профили Companion Device Manager

Партнерские приложения на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.
Встроенные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только в течение всего периода подключения устройства. Удаление приложения или разрыв связи приводит к удалению этих разрешений.
Для получения дополнительной информации см. AssociationRequest.Builder.setDeviceProfile() .
Улучшения в оценке пропускной способности
В Android 12 улучшены возможности оценки пропускной способности, предоставляемые функциями getLinkDownstreamBandwidthKbps() и getLinkUpstreamBandwidthKbps() как для Wi-Fi, так и для сотовой связи. Теперь возвращаемые значения представляют собой средневзвешенную пропускную способность пользователя за все время работы с каждым оператором или SSID Wi-Fi, типом сети и уровнем сигнала для всех приложений на устройстве. Это позволяет получить более точную и реалистичную оценку ожидаемой пропускной способности, предоставляет оценки при холодном запуске приложения и требует меньшего количества циклов по сравнению с использованием других методов оценки пропускной способности.
Улучшения Wi-Fi Aware (NAN)
В Android 12 добавлены некоторые улучшения в функцию Wi-Fi Aware:
- На устройствах под управлением Android 12 (уровень API 31) и выше вы можете использовать функцию обратного вызова
onServiceLost()для получения уведомлений о потере обнаруженной службы из-за ее остановки или выхода за пределы зоны действия. - Способ организации множественных каналов передачи данных (NAN Data Paths) меняется в сторону повышения эффективности. В более ранних версиях для обмена информацией об инициаторах использовался обмен сообщениями уровня L2, что приводило к задержкам. На устройствах под управлением Android 12 и выше ответчик (сервер) может быть настроен на прием любого участника — то есть ему не нужно заранее знать информацию об инициаторе. Это ускоряет запуск каналов передачи данных и позволяет создавать несколько прямых соединений с помощью всего одного сетевого запроса.
- Чтобы предотвратить отклонение запросов на обнаружение или подключение из-за нехватки ресурсов, на устройствах под управлением Android 12 и выше можно вызвать метод
WifiAwareManager.getAvailableAwareResources(). Возвращаемое значение этого метода позволяет получить количество доступных путей передачи данных, количество доступных сессий публикации и количество доступных сессий подписки.
Одновременное подключение к сети P2P + интернет-соединение
Когда устройства, работающие под управлением Android 12 (уровень API 31) и выше, используют аппаратную поддержку, одноранговые соединения не будут разрывать существующее Wi-Fi-соединение при установлении соединения с одноранговым устройством. Чтобы проверить поддержку этой функции, используйте WifiManager.isMultiStaConcurrencySupported() .
Включите отключение экрана для платежей NFC.
В приложениях для Android 12 и выше можно включить NFC-платежи при выключенном экране устройства, установив параметр requireDeviceScreenOn в значение false . Дополнительную информацию о NFC-платежах при выключенном или заблокированном экране см. в разделе «Поведение при выключенном и заблокированном экране» .
Хранилище
В Android 12 появились следующие возможности управления хранилищем:
- Поддержка
MediaDocumentsProviderв хранилище медиафайлов достигается, когда ваше приложение получает URI медиафайла, эквивалентный заданному URI поставщика документов . - Каталог голосовых записей .
- Разрешение
MANAGE_MEDIAпозволяет приложению выполнять операции управления медиафайлами без отображения пользователю диалогового окна подтверждения для каждой операции. - Приложения, обладающие одновременно разрешениями
MANAGE_EXTERNAL_STORAGEиQUERY_ALL_PACKAGES— например, приложения для управления файлами — могут вызывать пользовательскую активность для управления пространством хранения другого приложения при условии, что это другое приложение создаст данную пользовательскую активность .
Основная функциональность
Автоматические обновления приложений
В Android 12 представлен метод setRequireUserAction() для приложений, использующих API PackageInstaller . Этот метод позволяет приложениям-установщикам выполнять обновления приложений без необходимости подтверждения действия пользователем.
Информация о чипсете устройства
В Android 12 добавлены две константы в файл android.os.Build , которые предоставляют информацию о производителе и модели чипсета SoC через SDK. Получить эту информацию можно, вызвав методы Build.SOC_MANUFACTURER и Build.SOC_MODEL соответственно.
Обновления основных API Java
По запросам и в сотрудничестве с разработчиками мы добавили в Android 12 следующие основные библиотеки:
| Сорт | API |
|---|---|
java.lang.Deprecated | |
java.lang.Byte | |
java.lang.Short | |
java.lang.Math | |
java.lang.StrictMath | |
java.util.Set | copyOf() |
java.util.Map | copyOf() |
java.util.List | copyOf() |
java.time.Duration | |
java.time.LocalTime |