En esta página

Determinación del sensor por defecto para un tipo

Múltiples Sensores Pueden Existir para un Tipo

Sensores fue diseñado para que múltiples sensores pudieran existir para un tipo dado. ¿Por qué? Considere este ejemplo.

Un dispositivo Android tiene un acelerómetro incorporado. También cuenta con bluetooth y puede emparejarse con un mando de juegos que cuenta con un acelerómetro. Para un desarrollador que escribe un juego estos dos dispositivos son conceptualmente del mismo tipo.

Sensor por defecto para un tipo

Para evitar la necesidad de saber (o comprobar) cuál es el sensor por defecto para un tipo, el sistema utilizará el sensor por defecto para un tipo. La mayoría de las veces esto es lo que el desarrollador de la aplicación quiere hacer. Si el desarrollador de la aplicación quiere seleccionar un sensor específico, necesita llamar al método QSensor::setIdentifier() antes de iniciar el sensor para que se use el backend apropiado.

Sin embargo, desde la perspectiva del sistema, seleccionar qué sensor debería ser el predeterminado se vuelve complicado. La biblioteca de sensores usa el primer identificador registrado como el predeterminado. Esto significa que el orden en que los sensores son registrados es importante, así que el sistema permitirá que un archivo de configuración determine el predeterminado.

Sensores.conf

El archivo de configuración que determina el sensor por defecto para un tipo se llama Sensors.conf. El archivo de configuración se busca desde el directorio QtProject bajo los directorios dados por QStandardPaths::standardLocations(QStandardPaths::ConfigLocation). Un ejemplo de una ruta de archivo completa es:

/etc/xdg/QtProject/Sensors.conf

Se utiliza el primer fichero de configuración encontrado.

El fichero de configuración tiene el formato estándar de un fichero ini. La configuración se encuentra en el grupo Default y el formato general es:

type = identifier

Un ejemplo: Sensors.conf asegura que el acelerómetro sensorfw es usado por defecto, ignorando el orden en que los backends fueron registrados.

[Default]
QAccelerometer=sensorfw.accelerometer

Si Sensors.conf especifica un identificador que no está registrado, el sistema volverá al primer identificador registrado por defecto.

Tenga en cuenta que hay una lógica de caso especial para evitar que los backends del plugin genérico se conviertan en el predeterminado cuando otro backend está registrado para el mismo tipo. Esta lógica significa que un identificador de backend que comienza con generic. sólo será el predeterminado si ningún otro backend ha sido registrado para ese tipo, o si es especificado en 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.