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 niveauFULL
-
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:
- Excluez des appareils spécifiques dans la Google Play Console.
- Filtrez les appareils sans matériel d'écran tactile en déclarant explicitement
android.hardware.touchscreen
comme requis pour installer votre application.
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 deInputMethodService
) -
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:
Catégorie | Cette autorisation | Cela implique cette exigence de fonctionnalité. |
---|---|---|
Appareil photo | CAMERA |
android.hardware.camera etandroid.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 |