Compatibilité du fichier manifeste d'application avec les Chromebooks

Lorsque vous préparez votre application Android pour qu'elle s'exécute sur des Chromebooks, tenez compte des fonctionnalités de l'appareil qu'elle utilise. Les Chromebooks ne sont pas compatibles avec toutes les fonctionnalités matérielles et logicielles disponibles sur les autres appareils exécutant Android. Si votre application nécessite des fonctionnalités spécifiques qui ne sont pas compatibles avec les Chromebooks, vous ne pourrez pas l'installer sur ce type d'appareil.

Vous déclarez les exigences de votre application concernant les fonctionnalités matérielles et certaines fonctionnalités logicielles dans le fichier manifeste. Ce document décrit les déclarations de fonctionnalités du fichier manifeste d'application qui ne sont pas compatibles avec les Chromebooks.

Entrées de fichier manifeste incompatibles

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

Pour savoir comment déclarer l'utilisation d'une fonctionnalité sans exiger qu'elle soit disponible sur l'appareil, consultez le guide de l'élément manifeste <uses-feature>. Pour obtenir la liste complète des fonctionnalités et des descriptions des fichiers manifestes d'application, consultez la documentation de référence sur les fonctionnalités .

Remarque: Android Studio 2.3 et versions ultérieures 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 > Exactness > ChromeOS (Fichier > Paramètres > Éditeur > Inspections > Android > Lint > Exactitude > ChromeOS).

Fonctionnalités matérielles

La compatibilité des fonctionnalités matérielles varie selon les Chromebooks. Certaines fonctionnalités ne sont compatibles avec aucun Chromebook, tandis que d'autres ne sont compatibles qu'avec certains Chromebooks.

Fonctionnalités spéciales

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

Fonctionnalités matérielles non compatibles

La liste suivante inclut les fonctionnalités matérielles non compatibles avec les Chromebooks:

  • android.hardware.camera: caméra arrière
  • android.hardware.camera.autofocus: appareil photo utilisant l'autofocus
  • android.hardware.camera.capability.manual_post_processing : caméra utilisant la fonctionnalité MANUAL_POST_PROCESSING, y compris la fonctionnalité permettant de désactiver la balance des blancs automatique
  • android.hardware.camera.capability.manual_sensor: caméra qui utilise la fonctionnalité MANUAL_SENSOR, y compris la compatibilité avec le 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 DNG
  • android.hardware.camera.flash: appareil photo utilisant le flash
  • android.hardware.camera.level.full: caméra qui prend en charge les captures d'image de niveau FULL
  • android.hardware.consumerir: infrarouge (IR)
  • android.hardware.location.gps: GPS (Global Positioning System)
  • android.hardware.nfc: technologie NFC (communication en champ proche)
  • android.hardware.nfc.hce: émulation de carte NFC, obsolète
  • android.hardware.sensor.barometer: baromètre (pression de l'air)
  • android.hardware.telephony: téléphonie, y compris radio avec services de communication de données
  • android.hardware.telephony.cdma: compatibilité avec le réseau CDMA (Telephony Code Division Multiple Access)
  • android.hardware.telephony.gsm: compatibilité avec le réseau de téléphonie GSM (Global System for Mobile Communications)
  • android.hardware.type.automotive: appareil Android Automotive OS
  • android.hardware.type.television: télévision, qui est obsolète
  • android.hardware.usb.accessory: mode accessoire USB
  • android.hardware.usb.host: mode hôte USB

Fonctionnalités matérielles partiellement compatibles

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é (vers l'utilisateur)
  • android.hardware.sensor.stepcounter: nombre de pas
  • android.hardware.sensor.stepdetector: détecteur de pas

Compatibilité matérielle avec les écrans tactiles

À partir de 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 fictives fournissent un système de saisie utilisateur qui émule les événements tactiles de base. Par exemple, l'utilisateur peut interagir avec une souris ou une télécommande pour déplacer un curseur à l'écran, faire défiler une liste et faire glisser des éléments d'une partie de l'écran à une 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: modes de saisie personnalisés (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 télévisés en direct
  • android.software.managed_users: utilisateurs secondaires et profils gérés
  • android.software.sip: service SIP (Session Initiation Protocol) compatible avec la visioconférence et la messagerie instantanée.
  • android.software.sip.voip: service VoIP (Voice Over Internet Protocol) basé sur SIP et compatible avec 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 l'installation de votre application sur les Chromebooks.

Pour savoir comment empêcher les demandes d'autorisation de rendre votre application indisponible sur les Chromebooks, consultez la section Entrées de fichier manifeste incompatibles de cette page.

Le tableau suivant présente les autorisations impliquant des exigences de fonctionnalité qui rendent une application incompatible avec les Chromebooks:

Tableau 1. Autorisations de l'appareil impliquant des fonctionnalités matérielles incompatibles avec les Chromebooks.

Catégorie Cette autorisation Cela implique cette exigence de fonctionnalité.
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