Android 12 offre aux développeurs de nouvelles fonctionnalités et API de qualité. Les sections ci-dessous vous présentent les fonctionnalités de vos applications et vous permettent de vous lancer. avec les API associées.
Pour obtenir une liste détaillée des nouvelles API, des API modifiées et supprimées, consultez la page Différences entre les API rapport. Pour en savoir plus sur les nouvelles API, consultez le site Web Documentation de référence des API : les nouvelles API sont mises en évidence pour plus de visibilité. Par ailleurs, pour pour connaître les domaines dans lesquels les changements de plate-forme peuvent affecter vos applications, assurez-vous les modifications de comportement d'Android 12 pour les applications qui ciblent Android 12 et pour tous applications.
Expérience utilisateur
Material You
Android 12 introduit un nouveau langage de conception appelé Material Design Vous, pour vous aider à créer des applis plus personnalisées et plus belles. Pour profiter des dernières nouveautés Material Design 3 mises à jour dans vos applications, essayez une version alpha du Material Design Composants.
Améliorations apportées aux widgets
Android 12 remanie l'API Widgets existante pour améliorer l'expérience des utilisateurs et des développeurs dans la plateforme et les lanceurs d’applications. Nous avons créé un guide pour vous aider assurez-vous que votre widget est compatible avec Android 12 et actualisez-le avec caractéristiques.
Consultez les améliorations des widgets d'Android 12 pour : plus d'informations.
Insertion de contenu enrichi
Android 12 introduit une nouvelle API unifiée qui permet à votre application recevoir du contenu enrichi depuis n'importe quelle source disponible: presse-papiers, clavier ou glisser-déposer chute.
Pour en savoir plus, consultez la section Recevoir des contenus enrichis contenus.
API App splash screen
Android 12 introduit une nouvelle animation de lancement pour toutes les applications, qui inclut une un mouvement dans l'application dès le moment du lancement, un écran de démarrage affichant l'icône de l'application, et une transition vers l'application elle-même. Consultez le développeur des écrans de démarrage guide pour plus d'informations.
API à angles arrondis
Android 12 introduit RoundedCorner
et WindowInsets.getRoundedCorner(int
position)
,
qui indiquent le rayon et le point central des angles arrondis.
Pour en savoir plus, consultez la section Angles arrondis.
Expériences haptiques riches
Android 12 étend les outils de création de retours haptiques informatifs pour l'UI des événements, des effets immersifs et amusants pour les jeux, et des signaux haptiques attentifs pour la productivité.
Effets de l'actionneur
Android 12 ajoute des effets expressifs comme des coche qui bénéficier de la bande passante de fréquences étendue des derniers actionneurs. Jeu les développeurs peuvent désormais accéder à plusieurs actionneurs indépendants dans le jeu pour produire le même effet de manière synchrone ou des effets haptiques différents sur plusieurs actionneurs. Nous recommandons aux développeurs d'utiliser constantes et primitives en tant que des éléments de base pour des effets haptiques enrichis, des constantes qui améliorent les événements d'interface utilisateur et compositeur haptique pour séquencer pour des effets plus complexes. Ces API peuvent être essayées sur le Pixel 4 et nous continuons à collaborer avec nos fabricants d'appareils les dernières technologies haptiques pour les utilisateurs de l'écosystème.
Effets haptiques couplés audio
Les applications Android 12 peuvent générer un retour haptique dérivé d'une session audio en utilisant le vibreur du téléphone. Vous pouvez ainsi proposer des jeux et des expériences audio. Par exemple, les sonneries haptiques permettent d'identifier ou un jeu de conduite pourrait simuler la sensation d'un terrain accidenté.
Consultez le HapticGenerator
pour en savoir plus.
AppSearch
Android 12 introduit AppSearch, un moteur de recherche très performant sur l'appareil, en tant que service système. AppSearch permet aux applications d'indexer des données structurées et y effectuer des recherches grâce aux fonctionnalités intégrées de recherche en texte intégral. De plus, AppSearch est compatible avec les fonctionnalités de recherche natives, comme l'indexation très efficace. et de récupération, la prise en charge multilingue et le classement en fonction de la pertinence.
![Diagramme illustrant l'indexation et la recherche dans AppSearch](https://developer.android.com/static/images/about/versions/12/appsearch.png?authuser=19&hl=fr)
AppSearch est disponible sous deux formes: un index local que votre application doit utiliser. compatible avec les anciennes versions d'Android ou un index central gérés pour l'ensemble du système dans Android 12. À l'aide de l'index central, votre application peut autoriser l'affichage de ses données sur les surfaces de l'UI du système le composant intelligent préinstallé dans le système. Quelles sont exactement les données qui sont obtenues affiché sur les surfaces de l'UI du système dépend de l'OEM. De plus, votre peut partager des données de façon sécurisée avec d'autres applications, afin qu'elles puissent faire des recherches sur ces données également.
Pour en savoir plus sur AppSearch, consultez le guide du développeur et commencez à l'utiliser avec la bibliothèque Jetpack AppSearch, qui fournit une surface d'API adaptée aux développeurs ainsi qu'un processeur d'annotations de l'assistance.
Mode Jeu
L'API Game Mode et Game Mode d'intervention vous permettent d'optimiser pour jouer en donnant la priorité à certaines caractéristiques, comme les performances ou l'autonomie de la batterie en fonction des paramètres de l'utilisateur ou des configurations spécifiques au jeu.
Pour en savoir plus, consultez la section Mode Jeu.
Recommandations et améliorations Picture-in-picture (PIP)
Android 12 introduit les améliorations suivantes pour le mode PIP:
Compatibilité avec de nouveaux gestes PIP
Android 12 prend désormais en charge l'espacement et le pincement pour zoomer gestes pour le PIP période:
Pour masquer la fenêtre, l'utilisateur peut la faire glisser vers la gauche ou vers la droite. en périphérie. Pour ouvrir la fenêtre, l'utilisateur peut soit appuyer sur la partie visible la fenêtre placée dans la cachette ou de la faire glisser.
L'utilisateur peut désormais redimensionner la fenêtre PIP en pincer pour zoomer.
Nouvelles fonctionnalités recommandées pour une expérience de transition PIP soignée
Android 12 a apporté des améliorations esthétiques importantes à l'animation les transitions entre les fenêtres plein écran et PIP. Nous vous recommandons vivement mettre en œuvre toutes les modifications applicables ; Une fois cette opération effectuée, ces modifications s'adaptent automatiquement aux grands écrans, comme les pliables et les tablettes, tout autre travail requis.
Ces fonctionnalités sont les suivantes:
-
Utilisez le
setAutoEnterEnabled
pour permettre des transitions plus fluides vers le mode PIP lorsque vous balayez l'écran vers le haut pour accéder à l'écran d'accueil le mode navigation par gestes. Auparavant, Android attendait que le balayage de l'écran jusqu'à l'accueil jusqu'à la fin de l'animation avant de passer en fondu dans la fenêtre PIP. Animations plus fluides lors de l'entrée et de la sortie du mode PIP
SourceRectHint
L'indicateur est désormais réutilisé pour implémenter une animation plus fluide lors de l'entrée et de la sortie Mode PIP-
SeamlessResizeEnabled
permet d'obtenir une animation en fondu enchaîné beaucoup plus fluide lorsque vous redimensionnez les annonces non vidéo dans la fenêtre PIP. Auparavant, le redimensionnement d'un contenu autre que vidéo en mode PIP peut créer des artefacts visuels bouleversants.
Nouvelles notifications d'appel téléphonique pour classer les appels entrants selon leur importance
Android 12 ajoute le nouveau style de notification
Notification.CallStyle
pour les appels téléphoniques. Ce modèle permet à votre application d'indiquer l'importance
les appels actifs grâce à un chip bien visible qui indique l'heure de l'appel dans
la barre d'état ; l'utilisateur peut appuyer sur ce chip pour revenir à l'appel.
Les appels entrants et continus étant les plus importants pour les utilisateurs, ces les notifications se voient attribuer le meilleur classement dans le volet. Ce classement permet également pour transférer potentiellement ces appels prioritaires à d'autres appareils.
Implémentez le code suivant pour tous les types d'appels.
Kotlin
// 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();
Utiliser forIncomingCall()
pour créer une notification de style d'appel pour un appel entrant.
Kotlin
// 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);
Utiliser forOngoingCall()
pour créer une notification de style d'appel pour un appel en cours.
Kotlin
// 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);
Utiliser forScreeningCall()
pour créer une notification de style d'appel pour filtrer un appel.
Kotlin
// 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);
Prise en charge d'images enrichies pour les notifications
Sous Android 12, vous pouvez désormais enrichir l'expérience de notification de votre application en
fournir des images animées dans MessagingStyle()
et BigPictureStyle()
les notifications. De plus, votre application peut désormais permettre aux utilisateurs d'envoyer des messages image lorsque
ils répondent aux messages depuis le volet des notifications.
Améliorations du mode immersif pour la navigation par gestes
Android 12 consolide le comportement existant pour permettre aux utilisateurs de commandes de navigation par gestes en mode immersif mode. Dans De plus, Android 12 offre un comportement de rétrocompatibilité pour les applications immersive mode.
Partage d'URL pour les applications récentes (Pixel uniquement)
Sur les appareils Pixel, les utilisateurs peuvent désormais partager des liens vers des contenus Web consultés récemment. directement depuis l'écran "Recents" (Éléments récents). Après avoir consulté le contenu d'une application, l'utilisateur peuvent balayer l'écran jusqu'à l'écran "Récents" et trouver l'application dans laquelle ils ont regardé le contenu, puis appuyez sur le bouton du lien pour copier ou partager l'URL.
Pour en savoir plus, consultez la section Activer les URL récentes partage.
Sécurité et confidentialité
Tableau de bord Confidentialité
Sur les appareils compatibles équipés d'Android 12 ou version ultérieure, un écran "Tableau de bord Confidentialité" est disponible dans les paramètres système. Il permet aux utilisateurs d'accéder à des écrans distincts qui s'affichent lorsque les applications accèdent aux informations concernant la localisation, au micro et à l'appareil photo. Chaque écran montre à quel moment les différentes applications ont accédé à un type de données spécifique. La figure 1 présente la chronologie d'accès aux données de localisation.
Votre application peut expliquer pourquoi utilisateurs pour les aider à comprendre pourquoi votre application accède à la position, à l'appareil photo ou au micro des informations. Cette justification peut être visible sur le nouvel écran "Tableau de bord Confidentialité", l'écran des autorisations de l'application, ou les deux.
Autorisations Bluetooth
Android 12 introduit
BLUETOOTH_SCAN
,
BLUETOOTH_ADVERTISE
,
et
BLUETOOTH_CONNECT
autorisations. Ces autorisations permettent aux applications qui ciblent
Android 12 pour interagir avec le Bluetooth
appareils mobiles, en particulier pour les applications
ont besoin d'accéder à la position de l'appareil.
Mettre à jour les déclarations d'autorisations Bluetooth de votre application
Pour préparer votre appareil à cibler Android 12 ou version ultérieure, mettez à jour la logique de votre application. Au lieu de déclarer un ancien ensemble de connexions Bluetooth les autorisations déclarer un ensemble de technologies Bluetooth plus moderne autorisations.
Recherche de groupes d'autorisations
Sous Android 12 ou version ultérieure, vous pouvez interroger la façon dont le système organise des autorisations fournies par la plate-forme groupes d'autorisations:
- Pour déterminer le groupe d'autorisations dans lequel le système a placé un
une autorisation définie par la plate-forme,
getGroupOfPlatformPermission()
- Déterminer les autorisations définies par la plate-forme que le système a placées
un groupe d'autorisations particulier, appelez
getPlatformPermissionsForGroup()
Masquer les fenêtres de superposition des applications
Pour permettre aux développeurs de mieux contrôler ce que les utilisateurs voient lorsqu'ils interagissent avec
développeur, Android 12 permet de masquer
des fenêtres superposées qui sont dessinées par des applications dont
SYSTEM_ALERT_WINDOW
l'autorisation.
Après avoir déclaré
HIDE_OVERLAY_WINDOWS
autorisation, une application peut appeler
setHideOverlayWindows()
pour indiquer que toutes les fenêtres de type
TYPE_APPLICATION_OVERLAY
doivent être masquées lorsque la fenêtre de l'application est visible. Les applis peuvent choisir de faire
lors de l'affichage d'écrans sensibles, tels que les flux de confirmation de transaction.
Les applis qui affichent des fenêtres de type TYPE_APPLICATION_OVERLAY
doivent envisager d'utiliser
des alternatives plus adaptées à son cas d'utilisation, telles que
Picture-in-picture ou
bulles.
Indicateur de protection de l'autorisation pour les signataires connus
À partir d'Android 12,
Attribut knownCerts
pour
autorisations au niveau de la signature
vous permet de vous référer aux résumés des règles de signature connues
certificats lors de la déclaration
en temps réel.
Votre application peut déclarer cet attribut et utiliser l'indicateur knownSigner
pour autoriser
appareils et applications pour accorder des autorisations de signature à d'autres
d'applications, sans
avoir à signer les applications au moment
de la fabrication et de l'expédition de l'appareil.
Attestation des propriétés de l'appareil
Android 12 élargit l'ensemble des applications pouvant valider les propriétés de l'appareil figurant dans une attestation certificat lorsque ces applis génèrent une nouvelle clé.
À partir d'Android 9 (niveau d'API 28), les règles relatives aux appareils
(DPD) qui utilisent
Keymaster 4.0 ou version ultérieure peut
vérifier les propriétés de l'appareil dans ces certificats d'attestation. Début dans
Android 12, toute application qui cible Android 12 (niveau d'API 31) ou version ultérieure peut effectuer des opérations
cette vérification à l'aide du
setDevicePropertiesAttestationIncluded()
.
Les propriétés de l'appareil générées incluent les éléments suivants :
Champs Build
:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Actions de notification sur l'écran de verrouillage sécurisé
À partir d'Android 12, la classe Notification.Action.Builder
prend en charge les
setAuthenticationRequired()
, qui permet à votre application d'exiger qu'un appareil soit
déverrouillé
avant que votre application n'appelle une action de notification donnée. Cette méthode permet d'ajouter
pour renforcer la sécurité des notifications sur les appareils verrouillés.
Chaînes localisables pour "BiometricPrompt"
Android 12 introduit de nouvelles API pour vous aider à améliorer la biométrie de votre application
l'expérience utilisateur
en matière d'authentification. Nouvelle version de BiometricManager.Strings
inclut l'getButtonLabel()
,
getPromptMessage()
,
et getSettingName()
, qui permettent à votre application de récupérer un libellé de bouton lisible et localisé,
ou le nom du paramètre de l'application. Utilisez ces étiquettes pour créer
les instructions destinées à l'utilisateur spécifiques à l'authentification biométrique ;
méthodes utilisées, par exemple "Utiliser le déverrouillage par reconnaissance faciale" ou "Utilisez votre empreinte digitale pour continuer".
Détection de l'hameçonnage dans les applications de chat (Pixel uniquement)
<ph type="x-smartling-placeholder">![](https://developer.android.com/static/images/about/versions/12/phishing-detection.png?authuser=19&hl=fr)
Sur les appareils Pixel compatibles, Android 12 détecte l'hameçonnage sur les messages. reçues dans les applications de chat les plus utilisées. Le système utilise le machine learning sur l'appareil pour détecter les activités suspectes. Lorsqu'il est détecté, le système affiche un message de sécurité qui se superposent sur l'interface utilisateur de l'application de chat pour avertir les utilisateurs. Par exemple, l'hameçonnage peut avertir les utilisateurs des risques potentiels suivants:
- Demandes suspectes, telles que l'envoi d'un code, d'une somme d'argent ou autre
- URL non approuvées
- Pièces jointes malveillantes
- Liens vers des applications malveillantes
En plus d'avertir l'utilisateur, l'affichage en superposition permet à l'utilisateur de signaler message suspect et fournir des commentaires sur les avertissements émis par le système.
Les développeurs peuvent désactiver cette fonctionnalité en ajoutant une nouvelle balise de métadonnées incluant
La chaîne com.google.android.ALLOW_PHISHING_DETECTION
dans le fichier manifeste de son application
. Exemple :
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Contenus multimédias
Transcodage de contenus multimédias dans un format compatible
À partir d'Android 12 (niveau d'API 31), le système peut automatiquement transcoder HEVC(H.265) et HDR (HDR10 et HDR10+) les vidéos enregistrées sur l'appareil au format AVC (H.264), un format largement utilisé. compatible avec les lecteurs standards. Il s'appuie sur les codecs modernes ils sont disponibles sans sacrifier la compatibilité avec les anciennes applications.
Pour en savoir plus, consultez la section Transcodage de contenus multimédias compatibles.
Classe de performance
Android 12 introduit une norme appelée classe de performance. A spécifie les capacités matérielles au-delà de la valeur de référence d'Android exigences. Chaque appareil Android déclare la classe de performance qu'il compatibles. Les développeurs peuvent vérifier la classe de performance de l'appareil au moment de l'exécution et offrent une expérience améliorée qui exploite pleinement les capacités des fonctionnalités.
Reportez-vous à la section Classe de performance. pour en savoir plus.
Améliorations de l'encodage vidéo
Android 12 définit un ensemble standard de clés pour contrôler le la valeur du paramètre de quantification (QP) pour l'encodage vidéo, ce qui permet aux développeurs de éviter le code spécifique au fournisseur.
Les nouvelles clés sont disponibles
API MediaFormat
ainsi que dans
Bibliothèque multimédia NDK.
À partir d'Android 12, les encodeurs vidéo appliquent une qualité minimale de sortie. Ainsi, les utilisateurs ne bénéficient pas d'un service de qualité lorsque vous encodez des vidéos complexes.
Priorité audio
À partir d'Android 12 (niveau d'API 31), lorsqu'une application demande la priorité audio une autre application est ciblée et lit, le système fait fondre l'application en cours de lecture.
Consultez la section Priorité à l'audio sous Android 12 ou version ultérieure. pour en savoir plus.
Mises à jour de MediaDrm
Pour déterminer si un composant de décodeur sécurisé est requis avec
API MediaDrm
actuelles, procédez comme suit:
- Créez un élément
MediaDrm
. - Ouvrez une session pour obtenir un ID de session.
- Créez un
MediaCrypto
à l'aide de l'ID de session. - Appelez
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
Avec les nouvelles méthodes requiresSecureDecoder(@NonNull String mime)
et
requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
vous pouvez le déterminer dès que vous créez un MediaDrm
.
Appareil photo
Extensions du fournisseur Camera2
Bon nombre de nos fabricants d'appareils partenaires ont créé des extensions d'appareil photo personnalisées, telles que (Bokeh, HDR, Nuit, etc.) qu'ils souhaitent que les applications utilisent pour créer des expériences différenciées sur leurs appareils. Le CameraX bibliothèque prend déjà en charge ces extensions de fournisseur personnalisées. Sous Android 12, ces les extensions de fournisseur sont désormais exposées directement sur la plate-forme.
Cet ajout aide les applications
Camera2
tirent parti des extensions de fournisseur sans avoir à faire
des modifications importantes à l'ancien code. Les API d'extension Camera2 exposent exactement
le même ensemble de
les extensions
dans CameraX. Ceux-ci sont déjà compatibles avec de nombreuses
appareils. Vous pouvez ainsi les utiliser
configuration supplémentaire.
Pour en savoir plus, consultez CameraExtensionCharacteristics
.
Compatibilité avec les capteurs d'appareil photo Quad Bayer
De nombreux appareils Android sont aujourd'hui dotés de capteurs photo à très haute résolution, généralement avec des modèles Quad ou Nona Bayer. Ils offrent une grande flexibilité en termes de qualité d'image et de performances en cas de faible luminosité. Android 12 introduit de nouveaux qui permettent aux applications tierces de tirer pleinement parti de ces outils polyvalents capteurs. Les nouvelles API sont compatibles avec le comportement unique de ces capteurs peuvent prendre en charge différentes configurations et combinaisons de flux en cas d'utilisation mode haute résolution ou "résolution maximale" au lieu du mode par défaut.
Graphiques et images
Fournir aux applications un accès direct aux traces de tombstone
À partir d'Android 12, vous pouvez accéder au tombstone de plantage natif de votre application
tampon de protocole via
ApplicationExitInfo.getTraceInputStream()
. Le tampon de protocole est sérialisé à l'aide de ce schéma.
Auparavant, le seul moyen d'accéder à ces informations était d'utiliser Android Debug Bridge (Adb).
Pour en savoir plus, consultez Fournir aux applications un accès direct aux traces tombstone.
Compatibilité avec les images AVIF
Android 12 prend en charge les images qui utilisent le format de fichier image AV1. (AVIF). AVIF est un format de conteneur destiné aux images et aux séquences d'images encodées avec AV1. Le format AVIF exploite le contenu codé intra-frame des vidéos la compression. Cela améliore considérablement la qualité des images pour des fichiers de même taille par rapport à des formats d'image plus anciens, tels que JPEG. Pour en savoir plus les avantages de ce format, consultez le blog de Jake Archibald post.
Flous et filtres de couleur plus faciles, et autres effets
Android 12 ajoute la nouvelle RenderEffect
qui applique des effets graphiques courants comme le floutage, les filtres de couleur, le nuanceur Android
d'effets et autres pour les View
et les hiérarchies de rendu. Les effets peuvent être combinés comme des effets de chaîne
(qui composent un effet intérieur et extérieur) ou des effets mixtes. Autre Android
Les appareils peuvent être compatibles ou non avec cette fonctionnalité en raison d'une puissance de traitement limitée.
Les effets peuvent également être appliqués au RenderNode
sous-jacent.
pour les View
en appelant View.setRenderEffect(RenderEffect)
.
Pour implémenter un RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Décodage des images animées en mode natif
Sous Android 12, le NDK
L'API ImageDecoder
a été étendue
pour décoder tous les frames et toutes les données temporelles
qui utilisent le format GIF animé et
les formats de fichiers WebP animés. Quand
introduite sous Android 11, cette API ne décodait que la première image
des animations dans ces formats.
Utilisez ImageDecoder
au lieu de bibliothèques tierces pour diminuer davantage le nombre d'APK
taille
et bénéficier des futures mises à jour liées à la sécurité et aux performances.
Pour en savoir plus sur l'API, consultez la documentation de référence de l'API et l'exemple sur GitHub.
Connectivité
Maintenir les applications associées activées
Pour que les applis associées restent en cours d'exécution et gèrent l'appareil, Android 12 introduit des API qui:
- Vous permettent d'activer une application lorsqu'un appareil associé est à portée.
- Garantir que le processus se poursuivra pendant que l'appareil restera à l'intérieur la plage d'adresses IP.
Pour que vous puissiez utiliser les API, vos appareils doivent être connectés à l'aide d'un appareil associé
administrateur. Pour plus
pour en savoir plus, consultez
CompanionDeviceManager.startObservingDevicePresence()
et
CompanionDeviceService.onDeviceAppeared()
Profils du Gestionnaire d'appareils associés
![](https://developer.android.com/static/images/about/versions/12/companion-device-profile.png?authuser=19&hl=fr)
Les applications partenaires fonctionnant sous Android 12 (niveau d'API 31) ou version ultérieure peuvent utiliser des profils d'appareils associés pour se connecter à une montre. L'utilisation d'un profil simplifie le processus d'enregistrement en regroupant l'attribution d'un ensemble d'autorisations spécifiques au type d'appareil dans une seule étape.
Les autorisations groupées sont accordées à l'application associée une fois que l'appareil se connecte. Elles ne sont valables que lorsque l'appareil est associé. La suppression de l'application ou de l'association supprime les autorisations.
Pour en savoir plus, consultez AssociationRequest.Builder.setDeviceProfile()
.
Améliorations apportées à l'estimation de la bande passante
Sous Android 12, les fonctionnalités d'estimation de la bande passante fournies par
getLinkDownstreamBandwidthKbps()
et
getLinkUpstreamBandwidthKbps()
sont améliorées pour la connectivité Wi-Fi et mobile. Les valeurs renvoyées maintenant
représentent le débit moyen pondéré tout le temps de l'utilisateur par opérateur ou Wi-Fi.
SSID, type de réseau et niveau du signal pour toutes les applications installées sur l'appareil.
Cela peut renvoyer une estimation plus précise
et réaliste du débit attendu,
fournissent des estimations sur un démarrage à froid de votre application et nécessite moins de cycles.
par rapport aux autres méthodes d'estimation du débit.
Améliorations apportées à Wi-Fi Aware (NAN)
Android 12 apporte des améliorations à Wi-Fi Aware:
- Sur les appareils équipés d'Android 12 (niveau d'API 31) ou version ultérieure, vous pouvez utiliser le
Rappel
onServiceLost()
pour être alerté lorsque votre application a perdu un service détecté en raison de la le service s'arrête ou se déplace en dehors de la plage. - La façon dont les chemins de données multiples (chemins de données NAN) sont configurés change pour être plus efficace. Les versions antérieures utilisaient la messagerie L2 pour échanger des pairs. qui ont introduit la latence. Sur les appareils en cours d'exécution Sous Android 12 ou version ultérieure, le répondeur (serveur) peut être configuré accepter un pair, ce qui signifie qu'il n'a pas besoin de connaître l'initiateur les informations en amont. Cela accélère l'affichage des chemins de données et permet les liaisons point à point avec une seule requête réseau.
- Pour empêcher le framework de rejeter les requêtes de découverte ou de connexion
au manque de ressources sur les appareils équipés d'Android 12 et
plus élevée, vous pouvez appeler
WifiAwareManager.getAvailableAwareResources()
La valeur renvoyée par cette méthode vous permet d'obtenir le nombre de données disponibles les chemins d'accès, le nombre de sessions de publication disponibles et le nombre s'abonner à des sessions.
Connexion peer-to-peer + connexion Internet simultanée
Lorsque les appareils ciblant Android 12 (niveau d'API 31) ou version ultérieure fonctionnent sur des appareils avec
à l'aide de la technologie Peer-to-peer
de connexion ne déconnectera pas votre
connexion Wi-Fi existante lors de la création de la connexion à l'appareil associé. À
vérifiez la compatibilité de cette fonctionnalité, utilisez
WifiManager.isMultiStaConcurrencySupported()
Activer l'écran éteint pour les paiements NFC
Vous pouvez activer le NFC dans les applications destinées à Android 12 ou version ultérieure.
des paiements sans avoir l'écran allumé en paramétrant
requireDeviceScreenOn
jusqu'à
false
Pour en savoir plus sur les paiements NFC lorsque l'écran est éteint ou verrouillé, consultez
Écran éteint et écran verrouillé
comportemental.
Stockage
Android 12 introduit les fonctionnalités de gestion de l'espace de stockage suivantes capacités:
- Compatibilité du Media Store avec
MediaDocumentsProvider
lorsque votre application récupère un URI multimédia équivalent à un fournisseur de documents donné URI. - Un répertoire de voix de l'audiodescription.
MANAGE_MEDIA
qui permet à une appli de gérer les contenus multimédias opérations sans afficher de boîte de dialogue de confirmation à l'utilisateur pour chaque opération.- Les applications qui utilisent à la fois
MANAGE_EXTERNAL_STORAGE
l'autorisationQUERY_ALL_PACKAGES
telles que les applications de gestion de fichiers, peuvent appeler un utilisateur activité pour gérer l'espace de stockage d'une autre application, à condition que celle-ci crée l'activité personnalisée.
Fonctionnalité de base
Mises à jour automatiques des applications
Android 12 introduit
setRequireUserAction()
pour les applications qui utilisent
API PackageInstaller
.
Cette méthode permet aux applications d'installation d'effectuer des mises à jour
pour confirmer l'action.
Informations sur le chipset de l'appareil
Android 12 ajoute deux constantes à android.os.Build
, qui exposent
le fournisseur du chipset SoC et
le modèle via le SDK. Vous pouvez le récupérer
informations en appelant Build.SOC_MANUFACTURER
et Build.SOC_MODEL
respectivement.
Mises à jour des principales API Java
Sur la base des demandes et de la collaboration avec les développeurs, nous avons ajouté les éléments suivants : bibliothèques principales dans Android 12:
Cours | 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
|