Festlegen des Standardsensors für einen Typ
Für einen Typ können mehrere Sensoren existieren
„Sensors“ wurde so konzipiert, dass für einen bestimmten Typ mehrere Sensoren existieren können. Warum? Betrachten Sie dieses Beispiel.
Ein Android-Gerät verfügt über einen integrierten Beschleunigungssensor. Es verfügt außerdem über Bluetooth und kann mit einem Gaming-Controller gekoppelt werden, der ebenfalls einen Beschleunigungssensor besitzt. Für einen Entwickler, der ein Spiel schreibt, sind diese beiden Geräte konzeptionell vom gleichen Typ.
Standard-Sensor für einen Typ
Um zu vermeiden, dass man wissen (oder prüfen) muss, welcher Sensor der Standardsensor für einen Typ ist, verwendet das System den Standardsensor für diesen Typ. In den meisten Fällen entspricht dies den Absichten des App-Entwicklers. Wenn der App-Entwickler einen bestimmten Sensor auswählen möchte, muss er vor dem Start des Sensors die Methode ` QSensor::setIdentifier()` aufrufen, damit das entsprechende Backend verwendet wird.
Aus Sicht des Systems ist die Auswahl des Standardsensors jedoch nicht ganz einfach. Die Sensor-Bibliothek verwendet die erste registrierte Kennung als Standard. Das bedeutet, dass die Reihenfolge, in der die Sensor-Backends registriert werden, wichtig ist; daher ermöglicht das System stattdessen die Festlegung des Standards über eine Konfigurationsdatei.
Sensors.conf
Die Konfigurationsdatei, die den Standardsensor für einen Typ festlegt, heißt „Sensors.conf“. Die Konfigurationsdatei wird im QtProject -Verzeichnis unter den von QStandardPaths::standardLocations(QStandardPaths::ConfigLocation) angegebenen Verzeichnissen gesucht. Ein Beispiel für einen vollständigen Dateipfad lautet:
/etc/xdg/QtProject/Sensors.confEs wird die erste gefundene Konfigurationsdatei verwendet.
Die Konfigurationsdatei hat das Standardformat einer INI-Datei. Die Einstellungen befinden sich in der Gruppe „Default“ und das allgemeine Format lautet:
type = identifierEin Beispiel: „Sensors.conf“ stellt sicher, dass standardmäßig der „sensorfw“-Beschleunigungssensor verwendet wird, wobei die Reihenfolge, in der die Backends registriert wurden, ignoriert wird.
[Default]
QAccelerometer=sensorfw.accelerometerWenn in „Sensors.conf“ eine Kennung angegeben wird, die nicht registriert ist, greift das System auf die erste registrierte Kennung als Standard zurück.
Beachten Sie, dass es eine spezielle Logik gibt, die verhindert, dass die Backends des generischen Plugins zur Standardeinstellung werden, wenn ein anderes Backend für denselben Typ registriert ist. Diese Logik bedeutet, dass ein Backend-Bezeichner, der mit „ generic. “ beginnt, nur dann die Standardeinstellung ist, wenn keine anderen Backends für diesen Typ registriert wurden oder wenn er in „ Sensors.conf “ angegeben ist.
© 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.