Since sensor backends are created on demand, the sensor plugin is loaded and asked to register the sensor backends it handles. The plugin should implement QSensorPluginInterface::registerSensors() and call QSensorManager::registerBackend() to register available backends. Typically the plugin will also inherit from QSensorBackendFactory and implement QSensorBackendFactory::createBackend() in order to instantiate backends it has registered.
The simplest plugin will have just once sensor backend although there is no reason that multiple sensor backends cannot be in a plugin.
An example follows.
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::type, MyBackend::id, this); } QSensorBackend *createBackend(QSensor *sensor) override { if (sensor->identifier() == MyBackend::id) return new MyBackend(sensor); return 0; } };
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: