タイプのデフォルトセンサーの決定

つのタイプに複数のセンサーが存在できる

Sensorsは、あるタイプに対して複数のセンサーが存在できるように設計されています。なぜでしょうか?この例を考えてみましょう。

Androidデバイスには加速度センサーが内蔵されている。また、ブルートゥースも搭載しており、加速度センサーを搭載したゲームコントローラーとペアリングすることができます。ゲームを書いている開発者にとって、この2つのデバイスは概念的に同じタイプです。

タイプのデフォルトセンサー

タイプのデフォルトのセンサーを知る(または確認する)必要がないように、システムはタイプのデフォルトのセンサーを使用します。ほとんどの場合、これはアプリ開発者が望むことである。アプリ開発者が特定のセンサーを選択したい場合、センサーを起動する前にQSensor::setIdentifier() メソッドを呼び出す必要がある。

しかし、システムの観点からは、どのセンサーをデフォルトにするかを選択するのは厄介だ。sensors ライブラリは、最初に登録された識別子をデフォルトとして使用する。つまり、センサーのバックエンドが登録される順番は重要なので、システムはデフォルトを決定するために設定ファイルを許可します。

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 で指定されている場合のみであることを意味します。

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