Erstellen eines Sensor-Plugins

Wie ein Sensor-Plugin geladen wird

Da Sensor-Backends bei Bedarf erstellt werden, wird das Sensor-Plugin geladen und aufgefordert, die von ihm verwalteten Sensor-Backends zu registrieren. Das Plugin sollte QSensorPluginInterface::registerSensors() implementieren und QSensorManager::registerBackend() aufrufen, um die verfügbaren Backends zu registrieren. Normalerweise erbt das Plugin auch von QSensorBackendFactory und implementiert QSensorBackendFactory::createBackend(), um die registrierten Backends zu instanziieren.

Das einfachste Plugin wird nur ein Sensor-Backend haben, obwohl es keinen Grund gibt, warum nicht mehrere Sensor-Backends in einem Plugin sein können.

Es folgt ein Beispiel.

class MyPluginClass : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
    Q_OBJECT
    //Q_PLUGIN_METADATA(IID "com.qt-project.Qt.QSensorPluginInterface/1.0" FILE "plugin.json")
    Q_INTERFACES(QSensorPluginInterface)
public:
    void registerSensors() override
    {
        QSensorManager::registerBackend(QAccelerometer::sensorType, MyBackend::id, this);
    }

    QSensorBackend *createBackend(QSensor *sensor) override
    {
        if (sensor->identifier() == MyBackend::id)
            return new MyBackend(sensor);
        return 0;
    }
};

© 2025 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.