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

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

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

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