Compatibilité du fichier manifeste d'application avec les Chromebooks

Lorsque vous préparez votre application Android pour qu'elle puisse s'exécuter sur des Chromebooks, prenez en compte les caractéristiques de l'appareil qu'elle utilise. Les Chromebooks ne sont pas compatibles avec toutes les fonctionnalités matérielles et logicielles présentes sur les appareils Android. Si votre application nécessite des fonctionnalités spécifiques qui ne sont pas disponibles sur les Chromebooks, il sera impossible de l'installer sur ces appareils.

Vous devez déclarer les fonctionnalités matérielles et certaines fonctionnalités logicielles requises par votre application dans son fichier manifeste. Ce document décrit les déclarations de fonctionnalités du fichier manifeste de l'application qui ne sont pas compatibles avec les Chromebooks.

Entrées incompatibles dans le fichier manifeste

Les entrées du fichier manifeste figurant dans cette section ne sont pas compatibles avec les Chromebooks. Si votre application utilise l'une de ces entrées, pensez à la supprimer ou à y inclure la valeur d'attribut required="false" afin que l'installation puisse être effectuée sur les Chromebooks.

Pour découvrir comment déclarer une fonctionnalité utilisée sans exiger qu'elle soit disponible sur l'appareil concerné, consultez le guide sur l'élément de fichier manifeste <uses-feature>. Pour obtenir la liste complète des fonctionnalités pouvant être répertoriées dans le fichier manifeste ainsi que leurs descriptions, consultez les informations de référence sur les fonctionnalités .

Remarque : Android Studio dispose de vérifications lint intégrées pour valider automatiquement le fichier manifeste. Dans Android Studio, sélectionnez File > Settings > Editor > Inspections > Android > Lint > Correctness > ChromeOS (Fichier > Paramètres > Éditeur > Inspections > Android > Lint > Exactitude > ChromeOS).

Fonctionnalités matérielles

La disponibilité des caractéristiques matérielles varie selon les Chromebooks. Certaines ne sont pas compatibles avec les Chromebooks, tandis que d'autres sont proposées sur certains modèles.

Caractéristiques spéciales

Pour une meilleure compatibilité matérielle avec les Chromebooks, android.hardware.type.pc désactive l'émulation de saisie avec la souris et le pavé tactile. Vous devez indiquer required="false" pour cette entrée, sinon votre application ne pourra s'exécuter que sur des Chromebooks.

Fonctionnalités matérielles non compatibles

La liste suivante inclut les fonctionnalités matérielles qui ne sont pas prises en charge sur les Chromebooks :

  • android.hardware.camera : caméra orientée vers l'arrière
  • android.hardware.camera.autofocus : caméra qui utilise l'autofocus
  • android.hardware.camera.capability.manual_post_processing : appareil photo qui utilise la fonctionnalité MANUAL_POST_PROCESSING, y compris la fonctionnalité permettant de remplacer la balance des blancs automatique.
  • android.hardware.camera.capability.manual_sensor : caméra qui utilise la fonctionnalité MANUAL_SENSOR, y compris la prise en charge du verrouillage de l'exposition automatique
  • android.hardware.camera.capability.raw : caméra qui utilise la fonctionnalité RAW, y compris la possibilité d'enregistrer des fichiers DNG (bruts) et de fournir des métadonnées liées au format DNG
  • android.hardware.camera.flash : appareil photo qui utilise le flash
  • android.hardware.camera.level.full : caméra qui utilise la prise en charge de la capture d'images de niveau FULL
  • android.hardware.consumerir : infrarouge (IR)
  • android.hardware.location.gps : Global Positioning System (GPS)
  • android.hardware.nfc : NFC (communication en champ proche)
  • android.hardware.nfc.hce : émulation de carte NFC, qui est obsolète
  • android.hardware.sensor.barometer : baromètre (pression atmosphérique)
  • android.hardware.telephony : téléphonie, y compris radio avec services de communication de données
  • android.hardware.telephony.cdma : prise en charge du réseau de téléphonie CDMA (Code Division Multiple Access)
  • android.hardware.telephony.gsm : prise en charge du réseau GSM (Global System for Mobile Communications) pour la téléphonie
  • android.hardware.type.automotive : appareil Android Automotive OS
  • android.hardware.type.television : télévision (obsolète)
  • android.hardware.usb.accessory : mode accessoire USB
  • android.hardware.usb.host : mode hôte USB

Fonctionnalités matérielles partiellement prises en charge

La liste suivante inclut les fonctionnalités matérielles qui peuvent être disponibles sur certains Chromebooks :

  • android.hardware.sensor.accelerometer : accéléromètre (orientation de l'appareil)
  • android.hardware.sensor.compass : boussole
  • android.hardware.sensor.gyroscope : gyroscope (rotation et torsion de l'appareil)
  • android.hardware.sensor.light : clair
  • android.hardware.sensor.proximity : proximité (de l'utilisateur)
  • android.hardware.sensor.stepcounter : compteur de pas
  • android.hardware.sensor.stepdetector : détecteur de pas

Assistance matérielle pour l'écran tactile

Depuis la version M53 de ChromeOS, toutes les applications Android qui ne nécessitent pas explicitement la fonctionnalité android.hardware.touchscreen fonctionnent également sur les appareils ChromeOS compatibles avec la fonctionnalité android.hardware.faketouch.

Les appareils dotés d'interfaces tactiles simulées offrent un système de saisie utilisateur qui émule les événements tactiles de base. Par exemple, l'utilisateur peut utiliser une souris ou une télécommande pour déplacer un curseur à l'écran, faire défiler une liste ou faire glisser des éléments d'une partie de l'écran à l'autre.

Si vous ne souhaitez pas que votre application soit installée sur des appareils dotés d'interfaces tactiles simulées, mais pas d'écrans tactiles, vous pouvez effectuer l'une des actions suivantes :

Fonctionnalités logicielles

La liste suivante inclut les fonctionnalités logicielles qui ne sont pas compatibles avec les Chromebooks :

  • android.software.app_widgets : widgets d'application sur l'écran d'accueil
  • android.software.device_admin : administration des règles relatives aux appareils
  • android.software.home_screen : remplace l'écran d'accueil de l'appareil.
  • android.software.input_methods : méthodes de saisie personnalisées (instances de InputMethodService)
  • android.software.leanback : UI conçue pour l'affichage sur grand écran
  • android.software.live_wallpaper : fonds d'écran animés
  • android.software.live_tv : streaming de programmes TV en direct
  • android.software.managed_users : utilisateurs secondaires et profils gérés
  • android.software.sip : service SIP (Session Initiation Protocol), qui prend en charge les visioconférences et la messagerie instantanée
  • android.software.sip.voip : service VoIP (Voice over Internet Protocol) basé sur SIP, qui prend en charge la visioconférence bidirectionnelle.

Autorisations impliquant des exigences de fonctionnalités

Certaines autorisations que vous demandez dans vos fichiers manifestes peuvent créer des demandes implicites de fonctionnalités matérielles et logicielles. En demandant ces autorisations, vous empêchez que votre application soit installée sur des Chromebooks.

Pour découvrir comment éviter que les demandes d'autorisation rendent votre application non disponible pour les Chromebooks, consultez la section Entrées incompatibles dans le fichier manifeste de cette page.

Le tableau suivant présente les autorisations qui impliquent des exigences de fonctionnalités rendant une application incompatible avec les Chromebooks :

Tableau 1. Autorisations liées à des fonctionnalités matérielles incompatibles avec les Chromebooks.

Catégorie Cette autorisation Implique cette fonctionnalité requise
Appareil photo CAMERA android.hardware.camera et
android.hardware.camera.autofocus
Téléphonie CALL_PHONE android.hardware.telephony
CALL_PRIVILEGED android.hardware.telephony
MODIFY_PHONE_STATE android.hardware.telephony
PROCESS_OUTGOING_CALLS android.hardware.telephony
READ_SMS android.hardware.telephony
RECEIVE_SMS android.hardware.telephony
RECEIVE_MMS android.hardware.telephony
RECEIVE_WAP_PUSH android.hardware.telephony
SEND_SMS android.hardware.telephony
WRITE_APN_SETTINGS android.hardware.telephony
WRITE_SMS android.hardware.telephony