Déterminer le capteur par défaut pour un type
Plusieurs capteurs peuvent exister pour un type
Les capteurs ont été conçus de manière à ce que plusieurs capteurs puissent exister pour un type donné. Pourquoi ? Prenons l'exemple suivant.
Un appareil Android est équipé 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 écrit un jeu, ces deux appareils sont conceptuellement le même type.
Capteur par défaut pour un type
Pour éviter d'avoir à connaître (ou à vérifier) le capteur par défaut d'un type, le système utilisera le capteur par défaut de ce type. La plupart du temps, c'est ce que le développeur d'applications souhaite faire. S'il 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, la sélection du capteur par défaut devient délicate. 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 permet donc à un fichier de configuration de déterminer la valeur par défaut.
Sensors.conf
Le fichier de configuration qui détermine le capteur par défaut pour un type s'appelle Sensors.conf. Le fichier de configuration est recherché dans le répertoire QtProject sous les répertoires indiqués par QStandardPaths::standardLocations(QStandardPaths::ConfigLocation). Voici un exemple de chemin d'accès complet à un fichier :
/etc/xdg/QtProject/Sensors.conf
Le premier fichier de configuration trouvé est utilisé.
Le fichier de configuration a le formatage standard d'un fichier ini. Les paramètres se trouvent dans le groupe Default et le format général est le suivant :
type = identifierUn exemple : Sensors.conf garantit que l'accéléromètre sensorfw est utilisé par défaut, sans tenir compte de 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 utilisera par défaut le premier identifiant enregistré.
Notez qu'il existe une logique spéciale 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 utilisé 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.