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 qu'elle utilise. Les Chromebooks ne sont pas compatibles avec toutes les fonctionnalités matérielles et logicielles disponibles sur les autres appareils équipés d'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 ces appareils.

Vous devez déclarer les fonctionnalités matérielles et certaines fonctionnalités logicielles requises pour votre application 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 du fichier manifeste incompatibles

Les entrées du 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 les supprimer ou d'y inclure la valeur de l'attribut required="false" afin que votre application puisse être installée sur des Chromebooks.

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

Remarque: Android Studio 2.3 et versions ultérieures disposent 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

Les fonctionnalités matérielles varient d'un Chromebook à l'autre. Certaines fonctionnalités ne sont pas compatibles avec les Chromebooks, tandis que d'autres ne le sont que sur certains Chromebooks.

Fonctionnalités spéciales

Pour une meilleure compatibilité matérielle sur les Chromebooks, android.hardware.type.pc désactive l'émulation d'entrée 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 les 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 une fonctionnalité permettant de remplacer la balance des blancs automatique
  • android.hardware.camera.capability.manual_sensor: caméra utilisant la fonctionnalité MANUAL_SENSOR, y compris la prise en charge du verrouillage de l'exposition automatique
  • android.hardware.camera.capability.raw: appareil photo utilisant la fonctionnalité RAW, avec 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: appareil photo compatible avec la capture 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 atmosphérique)
  • android.hardware.telephony: téléphonie, y compris la radio avec services de communication de données
  • android.hardware.telephony.cdma: compatibilité avec les réseaux CDMA (telephony Code Division Multiple Access)
  • android.hardware.telephony.gsm: compatibilité du réseau de téléphonie Global System for Mobile Communications (GSM)
  • 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 des fonctionnalités matérielles susceptibles d'ê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 rotation de l'appareil)
  • android.hardware.sensor.light: clair
  • android.hardware.sensor.proximity: proximité (par rapport à l'utilisateur)
  • android.hardware.sensor.stepcounter: compteur de pas
  • android.hardware.sensor.stepdetector: détecteur de pas

Compatibilité matérielle pour 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 Chrome OS compatibles avec la fonctionnalité android.hardware.faketouch.

Les appareils dotés d'interfaces tactiles factices fournissent un système d'entrée 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 fictives, 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'applications 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: interface utilisateur conçue pour l'affichage sur grand écran
  • android.software.live_wallpaper: fonds d'écran animés
  • android.software.live_tv: diffuser des programmes TV 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, 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 requêtes implicites pour des 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 incompatibles du fichier manifeste de cette page.

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

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

Catégorie Cette autorisation 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