Обзор функций и API

Android 12 представляет замечательные новые функции и API для разработчиков. Разделы ниже помогут вам узнать о функциях для ваших приложений и начать работу с соответствующими API.

Подробный список новых, измененных и удаленных API см. в отчете API diff . Подробную информацию о новых 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 .

AppSearch

Android 12 представляет AppSearch, высокопроизводительную поисковую систему на устройстве, в качестве системной службы. AppSearch позволяет приложениям индексировать структурированные данные и выполнять поиск по ним с помощью встроенных возможностей полнотекстового поиска. Кроме того, AppSearch поддерживает собственные функции поиска, такие как высокоэффективное индексирование и извлечение, многоязыковая поддержка и ранжирование по релевантности.

Диаграмма, иллюстрирующая индексацию и поиск в AppSearch

AppSearch поставляется в двух вариантах: локальный индекс для вашего приложения, совместимый со старыми версиями Android, или центральный индекс, поддерживаемый для всей системы в Android 12. Используя центральный индекс, ваше приложение может разрешить отображение своих данных на поверхностях пользовательского интерфейса системы с помощью предустановленного компонента интеллекта системы. Какие именно данные будут отображаться на поверхностях пользовательского интерфейса системы, зависит от OEM. Кроме того, ваше приложение может безопасно обмениваться данными с другими приложениями, чтобы они также могли выполнять поиск по этим данным.

Узнайте больше о AppSearch в руководстве для разработчиков и начните использовать его с библиотекой AppSearch Jetpack , которая предоставляет удобную для разработчиков поверхность API, а также поддержку процессора аннотаций.

Игровой режим

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

Более подробную информацию см. в разделе «Игровой режим» .

Рекомендации и улучшения для функции «картинка в картинке» (PiP)

В Android 12 реализованы следующие улучшения режима PiP:

Поддержка новых жестов PiP

Android 12 теперь поддерживает жесты скрытия и масштабирования для окна PiP:

  • Чтобы спрятать окно, пользователь может перетащить окно к левому или правому краю. Чтобы распаковать окно, пользователь может либо нажать на видимую часть спрятанного окна, либо перетащить его.

  • Теперь пользователь может изменять размер окна PiP, используя жест «щипок-зум».

Android 12 добавил значительные косметические улучшения в анимированные переходы между полноэкранными и PiP-окнами. Мы настоятельно рекомендуем реализовать все применимые изменения; как только вы это сделаете, эти изменения автоматически масштабируются на большие экраны, такие как складные устройства и планшеты, без необходимости дополнительной работы.

Эти особенности следующие:

Новые уведомления о телефонных звонках, позволяющие ранжировать важность входящих звонков

Android 12 добавляет новый стиль уведомлений Notification.CallStyle для телефонных звонков. Использование этого шаблона позволяет вашему приложению указывать важность активных звонков, отображая заметный чип, который показывает время звонка в строке состояния; пользователь может нажать на этот чип, чтобы вернуться к своему звонку.

Поскольку входящие и текущие вызовы являются наиболее важными для пользователей, эти уведомления имеют высший рейтинг в тени. Этот рейтинг также позволяет системе потенциально пересылать эти приоритетные вызовы на другие устройства.

Реализуйте следующий код для всех типов вызовов.

Котлин

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Ява

// 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)

Ява

// 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)

Ява

// 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)

Ява

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 обеспечивает поведение обратной совместимости для режима закрепления погружения .

Недавние URL-адреса для совместного использования (только Pixel)

На устройствах Pixel пользователи теперь могут делиться ссылками на недавно просмотренный веб-контент прямо с экрана «Недавние». После посещения контента в приложении пользователь может провести пальцем к экрану «Недавние» и найти приложение, в котором он просматривал контент, затем нажать на кнопку ссылки, чтобы скопировать или поделиться URL-адресом.

Для получения дополнительной информации см. раздел Включение обмена URL-адресами недавних посещений .

Безопасность и конфиденциальность

Панель управления конфиденциальностью

Вертикальная временная шкала показывает различные приложения, которые получили доступ к информации о местоположении, а также время, когда произошел доступ.
Рисунок 1. Экран использования местоположения, часть панели конфиденциальности.

На поддерживаемых устройствах под управлением Android 12 или выше в системных настройках отображается экран Privacy Dashboard. На этом экране пользователи могут получить доступ к отдельным экранам, которые показывают, когда приложения получают доступ к информации о местоположении, камере и микрофоне. На каждом экране отображается временная шкала того, когда различные приложения получали доступ к определенному типу данных. На рисунке 1 показана временная шкала доступа к данным для информации о местоположении.

Ваше приложение может предоставить обоснование для пользователей , чтобы помочь им понять, почему ваше приложение получает доступ к информации о местоположении, камере или микрофоне. Это обоснование может появиться на новом экране Privacy Dashboard, на экране разрешений вашего приложения или на обоих.

Разрешения 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() , которые позволяют вашему приложению извлекать читаемую пользователем и локализованную метку кнопки, сообщение-подсказку или имя настройки приложения. Используйте эти метки для создания более точных инструкций для пользователя, которые относятся к используемым методам биометрической аутентификации, например «Использовать разблокировку с помощью лица» или «Использовать отпечаток пальца для продолжения».

Обнаружение фишинга в приложениях для обмена сообщениями (только Pixel)

Пользователь видит подобное сообщение при обнаружении подозрительного сообщения.

На поддерживаемых устройствах Pixel Android 12 запускает обнаружение фишинга в сообщениях, полученных в популярных приложениях для обмена сообщениями. Система использует машинное обучение на устройстве для обнаружения подозрительных действий. При обнаружении система отображает защитный слой поверх пользовательского интерфейса приложения для обмена сообщениями, чтобы предупредить пользователей. Например, обнаружение фишинга может предупредить пользователей о следующих потенциальных рисках:

  • Подозрительные запросы, такие как отправка кода, денег или чего-то подобного
  • Ненадежные URL-адреса
  • Вредоносные вложения
  • Ссылки на вредоносные приложения

Помимо предупреждения пользователя, наложение также позволяет ему сообщать о подозрительных сообщениях и оставлять отзывы о предупреждениях, выдаваемых системой.

Разработчики могут отказаться от этой функции, добавив новый тег метаданных, включающий строку com.google.android.ALLOW_PHISHING_DETECTION в свои файлы манифеста приложения. Например:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

СМИ

Совместимое транскодирование медиа

Начиная с Android 12 (API уровня 31) система может автоматически перекодировать видео HEVC(H.265) и HDR (HDR10 и HDR10+), записанные на устройстве, в формат AVC (H.264), который широко совместим со стандартными проигрывателями. Это позволяет использовать преимущества современных кодеков, когда они доступны, не жертвуя совместимостью со старыми приложениями.

Более подробную информацию см. в разделе «Совместимое транскодирование мультимедиа» .

Класс производительности

Android 12 вводит стандарт, называемый классом производительности . Класс производительности определяет возможности оборудования, выходящие за рамки базовых требований Android. Каждое устройство Android объявляет класс производительности, который оно поддерживает. Разработчики могут проверять класс производительности устройства во время выполнения и предоставлять обновленные возможности, которые в полной мере используют возможности устройства.

Более подробную информацию см. в разделе Класс производительности .

Улучшения кодирования видео

Android 12 определяет стандартный набор ключей для управления значением параметра квантования (QP) для кодирования видео, что позволяет разработчикам избегать кода, специфичного для конкретного поставщика.

Новые ключи доступны в API MediaFormat , а также в библиотеке NDK Media .

Начиная с Android 12 видеокодеры устанавливают минимальный порог качества. Это гарантирует, что пользователи не столкнутся с крайне низким качеством при кодировании видео с высокой сложностью сцен.

Аудио фокус

Начиная с Android 12 (уровень API 31), когда приложение запрашивает аудиофокус, в то время как другое приложение имеет фокус и воспроизводит звук, система постепенно закрывает воспроизводящееся приложение.

Более подробную информацию см. в разделе Аудиофокус в Android 12 и более поздних версиях .

Обновления MediaDrm

Чтобы определить, требуется ли компонент безопасного декодера для текущих API MediaDrm , необходимо выполнить следующие действия:

  1. Создайте MediaDrm .
  2. Откройте сеанс, чтобы получить идентификатор сеанса.
  3. Создайте MediaCrypto , используя идентификатор сеанса.
  4. Вызовите MediaCrypto.requiresSecureDecoderComponent(mimeType) .

С помощью новых методов requiresSecureDecoder(@NonNull String mime) и requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) вы можете определить это сразу после создания MediaDrm .

Камера

Расширения поставщика Camera2

Многие из наших партнеров-производителей устройств создали пользовательские расширения камеры, такие как Bokeh, HDR, Ночной режим и другие, которые они хотят использовать в приложениях для создания дифференцированного опыта на своих устройствах. Библиотека CameraX уже поддерживает эти пользовательские расширения поставщиков. В Android 12 эти расширения поставщиков теперь представлены непосредственно на платформе.

Это дополнение помогает приложениям, имеющим сложные реализации Camera2 , использовать преимущества расширений поставщиков без необходимости вносить существенные изменения в устаревший код. API расширения Camera2 предоставляют точно такой же набор расширений, как в CameraX, и они уже поддерживаются на многих различных устройствах , поэтому вы можете использовать их без какой-либо дополнительной настройки.

Для получения дополнительной информации см. CameraExtensionCharacteristics .

Поддержка сенсора камеры Quad Bayer

Многие устройства 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 NDK ImageDecoder был расширен для декодирования всех кадров и данных о времени из изображений, которые используют анимированные форматы файлов GIF и WebP . Когда он был представлен в Android 11, этот API декодировал только первое изображение из анимаций в этих форматах.

Используйте ImageDecoder вместо сторонних библиотек, чтобы еще больше уменьшить размер APK и воспользоваться преимуществами будущих обновлений, связанных с безопасностью и производительностью.

Более подробную информацию об API можно найти в справочнике по API и примере на GitHub .

Связность

Поддержание активности сопутствующих приложений

Чтобы обеспечить постоянную работу сопутствующих приложений для управления устройством, в Android 12 представлены API-интерфейсы, которые выполняют следующие функции:

  • Позволяет активировать приложение, когда в зоне действия находится сопутствующее устройство.
  • Гарантируйте, что процесс будет продолжаться, пока устройство остается в пределах досягаемости.

Для использования API ваши устройства должны быть подключены с помощью Companion Device Manager . Для получения дополнительной информации см. CompanionDeviceManager.startObservingDevicePresence() и CompanionDeviceService.onDeviceAppeared() .

Профили диспетчера сопутствующих устройств

Диалоговое окно разрешений, которое использует профиль сопутствующего устройства для запроса нескольких разрешений в одном запросе.

Приложения-партнеры на Android 12 (уровень API 31) и выше могут использовать профили сопутствующих устройств при подключении к часам. Использование профиля упрощает процесс регистрации, объединяя предоставление набора разрешений, специфичных для типа устройства, в один шаг.

Связанные разрешения предоставляются сопутствующему приложению после подключения устройства и действуют только пока устройство ассоциировано. Удаление приложения или удаление ассоциации удаляет разрешения.

Для получения дополнительной информации см. AssociationRequest.Builder.setDeviceProfile() .

Улучшения оценки пропускной способности

В Android 12 возможности оценки пропускной способности, предоставляемые getLinkDownstreamBandwidthKbps() и getLinkUpstreamBandwidthKbps() улучшены как для Wi-Fi, так и для сотовой связи. Возвращаемые значения теперь представляют собой средневзвешенную пропускную способность пользователя за все время на оператора или SSID WiFi, тип сети и уровень сигнала во всех приложениях на устройстве. Это может вернуть более точную и реалистичную оценку ожидаемой пропускной способности, предоставить оценки при холодном запуске вашего приложения и требует меньше циклов по сравнению с использованием других методов оценки пропускной способности.

Улучшения Wi-Fi Aware (NAN)

Android 12 добавляет некоторые улучшения в Wi-Fi Aware:

  • На устройствах под управлением Android 12 (уровень API 31) и выше вы можете использовать обратный вызов onServiceLost() , чтобы получать оповещения о том, что ваше приложение потеряло обнаруженную службу из-за ее остановки или выхода за пределы диапазона.
  • Способ настройки нескольких путей передачи данных (NAN Data Paths) меняется, чтобы стать более эффективным. Более ранние версии использовали сообщения L2 для обмена информацией об одноранговых узлах инициаторов, что приводило к задержке. На устройствах под управлением Android 12 и выше ответчик (сервер) может быть настроен на прием любого однорангового узла, то есть ему не нужно заранее знать информацию об инициаторе. Это ускоряет запуск пути передачи данных и позволяет устанавливать несколько соединений точка-точка с помощью всего одного сетевого запроса.
  • Чтобы предотвратить отклонение фреймворком запросов на обнаружение или подключение из-за нехватки ресурсов, на устройствах под управлением Android 12 и выше можно вызвать WifiAwareManager.getAvailableAwareResources() . Возвращаемое значение этого метода позволяет получить количество доступных путей данных, количество доступных сеансов публикации и количество доступных сеансов подписки.

Одновременный одноранговый доступ + подключение к Интернету

Когда устройства, ориентированные на Android 12 (уровень API 31) и выше, работают на устройствах с аппаратной поддержкой, использование одноранговых подключений не отключит ваше существующее подключение Wi-Fi при создании подключения к одноранговому устройству. Чтобы проверить поддержку этой функции, используйте WifiManager.isMultiStaConcurrencySupported() .

Включить отключение экрана для платежей NFC

В приложениях, ориентированных на Android 12 и выше, вы можете включить платежи NFC без включенного экрана устройства, установив requireDeviceScreenOn на false . Для получения дополнительной информации о платежах NFC с выключенным или заблокированным экраном см. Поведение выключенного и заблокированного экрана .

Хранилище

В Android 12 реализованы следующие возможности управления хранилищем:

Основная функциональность

Автоматические обновления приложений

В 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