本页内容

确定某类型的默认传感器

一种类型可以存在多个传感器

传感器系统的设计初衷是允许针对给定类型存在多个传感器。为什么呢?请看以下示例。

一台 Android 设备内置了加速度计。它还支持蓝牙,并可与配备加速度计的游戏手柄配对。对于开发游戏的人来说,从概念上讲,这两种设备属于同一类型。

类型的默认传感器

为了避免开发者需要了解(或检查)某类型的默认传感器是什么,系统将自动使用该类型的默认传感器。 大多数情况下,这正是应用开发者所期望的。如果应用开发者希望选择特定的传感器,则需要在启动传感器之前调用QSensor::setIdentifier()方法,以确保使用正确的后端。

不过从系统角度来看,选择哪个传感器作为默认传感器较为棘手。传感器库会将第一个注册的标识符作为默认值。这意味着传感器后端的注册顺序至关重要,因此系统允许通过配置文件来确定默认值。

Sensors.conf

用于确定某类型默认传感器的配置文件名为Sensors.conf。系统会在QtProject目录下,根据QStandardPaths::standardLocations (QStandardPaths::ConfigLocation )中指定的目录路径搜索该配置文件。完整的文件路径示例如下:

/etc/xdg/QtProject/Sensors.conf

系统将使用首个找到的配置文件。

该配置文件采用 ini 文件的标准格式。设置位于 Default 组中,一般格式如下:

type = identifier

示例:Sensors.conf 确保默认使用sensorfw加速度计,且不考虑后端注册的顺序。

[Default]
QAccelerometer=sensorfw.accelerometer

如果 Sensors.conf 指定的标识符未被注册,系统将回退到第一个已注册的标识符作为默认值。

请注意,存在一种特殊情况逻辑,用于防止当为同一类型注册了其他后端时,通用插件的后端成为默认选项。该逻辑意味着,以generic. 开头的后端标识符仅在该类型下未注册其他后端,或者在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.