このページでは

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

1つのタイプに対して複数のセンサーが存在可能

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

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

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

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

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

Sensors.conf

各タイプのデフォルトセンサーを決定する設定ファイルはSensors.conf と呼ばれます。この設定ファイルは、QStandardPaths::standardLocations(QStandardPaths::ConfigLocation) で指定されたディレクトリ配下のQtProjectディレクトリ内から検索されます。完全なファイルパスの例は以下の通りです:

/etc/xdg/QtProject/Sensors.conf

最初に検出された設定ファイルが使用されます。

設定ファイルは、iniファイルの標準的な形式を採用しています。設定は「Default」グループ内に記述され、一般的な形式は以下の通りです:

type = identifier

例:Sensors.conf により、バックエンドの登録順序に関係なく、デフォルトでsensorfw加速度センサーが使用されるようになります。

[Default]
QAccelerometer=sensorfw.accelerometer

Sensors.conf で登録されていない識別子が指定された場合、システムは最初に登録された識別子をデフォルトとして使用します。

なお、同じタイプに対して別のバックエンドが登録されている場合、汎用プラグインのバックエンドがデフォルトにならないようにする特別なロジックが存在することに注意してください。このロジックにより、generic. で始まるバックエンド識別子は、そのタイプに対して他のバックエンドが登録されていない場合、または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.