センサープラグインの作成

センサープラグインのロード方法

センサーバックエンドはオンデマンドで作成されるため、センサープラグインはロードされ、扱うセンサーバックエンドを登録するよう求められる。プラグインはQSensorPluginInterface::registerSensors() を実装し、利用可能なバックエンドを登録するためにQSensorManager::registerBackend() を呼び出す必要がある。通常、プラグインはQSensorBackendFactory を継承し、登録したバックエンドをインスタンス化するためにQSensorBackendFactory::createBackend() を実装します。

最も単純なプラグインはセンサーバックエンドを1つだけ持ちますが、複数のセンサーバックエンドをプラグインに持つことができない理由はありません。

以下に例を示します。

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;
    }
};

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権はそれぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。