Sur cette page

Détermination du capteur par défaut pour un type

Plusieurs capteurs peuvent exister pour un même type

Le système de capteurs a été conçu pour permettre l’existence de plusieurs capteurs pour un type donné. Pourquoi ? Prenons l’exemple suivant.

Un appareil Android dispose d’un accéléromètre intégré. Il est également équipé du Bluetooth et peut être couplé à une manette de jeu dotée d’un accéléromètre. Pour un développeur qui crée un jeu, ces deux appareils sont conceptuellement du même type.

Capteur par défaut pour un type

Pour éviter d’avoir à connaître (ou à vérifier) quel est le capteur par défaut d’un type, le système utilise le capteur par défaut de ce type. La plupart du temps, c’est ce que souhaite le développeur d’applications. Si celui-ci souhaite sélectionner un capteur spécifique, il doit appeler la méthode ` QSensor::setIdentifier()` avant de lancer le capteur, afin que le backend approprié soit utilisé.

Du point de vue du système, cependant, le choix du capteur par défaut s’avère délicat. La bibliothèque de capteurs utilise le premier identifiant enregistré comme valeur par défaut. Cela signifie que l’ordre dans lequel les backends des capteurs sont enregistrés est important ; le système autorise donc qu’un fichier de configuration détermine la valeur par défaut à la place.

Sensors.conf

Le fichier de configuration qui détermine le capteur par défaut pour un type s’appelle Sensors.conf. Le système recherche ce fichier dans le répertoire QtProject, à l’emplacement indiqué par la fonction QStandardPaths::standardLocations(QStandardPaths::ConfigLocation). Voici un exemple de chemin d’accès complet :

/etc/xdg/QtProject/Sensors.conf

Le premier fichier de configuration trouvé est utilisé.

Le fichier de configuration respecte le format standard d’un fichier ini. Les paramètres se trouvent dans le groupe « Default » et le format général est le suivant :

type = identifier

Exemple : le fichier Sensors.conf garantit que l’accéléromètre sensorfw est utilisé par défaut, en ignorant l’ordre dans lequel les backends ont été enregistrés.

[Default]
QAccelerometer=sensorfw.accelerometer

Si Sensors.conf spécifie un identifiant qui n’est pas enregistré, le système se rabattra sur le premier identifiant enregistré comme valeur par défaut.

Notez qu’il existe une logique de cas particulier pour empêcher les backends du plugin générique de devenir la valeur par défaut lorsqu’un autre backend est enregistré pour le même type. Cette logique signifie qu’un identifiant de backend commençant par generic. ne sera la valeur par défaut que si aucun autre backend n’a été enregistré pour ce type, ou s’il est spécifié dans Sensors.conf.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.