1. 序論
Proximity Sensor は Generic Sensor API [GENERIC-SENSOR] を拡張し、デバイスの主たる近接センサーにより検出される近接レベルに関する情報を提供する。 近接レベルは、センサーから最も近い可視表面までの距離 (センチメートル単位) として報告される。 § 9 近接センサーの 制限 では、潜在的な制限、検出方法やセンサー構造などの違いにより 異なるデバイスで報告される正確な距離値が異なり得る理由について、より詳しく説明する。 さらに、一部の近接センサーは、距離の絶対値ではなく、 近くに物理オブジェクトがあるかどうかを示す真偽値だけを提供できる場合があり、 これは存在検出により近い。
2. 例
let sensor= new ProximitySensor(); sensor. start(); sensor. onreading= () => console. log( sensor. distance); sensor. onerror= event=> console. log( event. error. name, event. error. message);
3. セキュリティおよびプライバシーの考慮事項
近接センサーは、センサーと近くのオブジェクトとの近さに関する情報を提供する。 したがって、ユーザー識別 および/または フィンガープリンティング攻撃のための、プライバシー上機微な情報を露出する可能性がある。
これらを軽減するため、ユーザーエージェントは、次の軽減 戦略の一方または両方を使用するべきである:
-
精度を低減する、センサー 読み取り値の
-
最大サンプリング周波数を制限する
これらの軽減戦略は、Generic Sensor API [GENERIC-SENSOR] で定義される 一般的な 軽減策 を補完する。
4. Permissions Policy 統合
この仕様は、文字列
"proximity-sensor"
により識別される
ポリシー制御機能を定義する。
その既定の許可リストは "self" である。
5. モデル
Proximity Sensor センサー型は、次の関連データを持つ:
- 拡張センサーインターフェイス
- センサー権限名
-
"
"proximity - センサー機能名
- 権限失効アルゴリズム
-
"
proximity" を用いて 汎用センサー権限失効 アルゴリズムを呼び出す。 - 既定のセンサー
-
デバイスの主たる近接検出器。
- 仮想センサー型
-
"
proximity"
Proximity Sensor センサー型の
Sensor
に対する最新の読み取り値は、"distance"、"max"、"near" である
キーを持ち、かつ
distance、
max、および near 値を含む
値を持つ、3 つの
エントリを含む。
distance は、 検知範囲内にある物理オブジェクトの最も近い可視表面と デバイスとの間の距離を表す値である。 その単位はセンチメートル (cm) である。
max は、主たる近接検出器の 最大検知範囲を センチメートル単位で表す値である。
near は、主たる近接検出器の近傍における 可視表面の存在を表す値である。
6. API
6.1. ProximitySensor インターフェイス
[SecureContext ,Exposed =Window ]interface :ProximitySensor Sensor {(constructor optional SensorOptions = {});sensorOptions readonly attribute double ?;distance readonly attribute double ?;max readonly attribute boolean ?; };near
ProximitySensor
オブジェクトを構築するには、ユーザーエージェントは
近接センサーオブジェクトを構築する抽象
操作を呼び出さなければならない。
6.1.1. distance 属性
distance
属性は、ProximitySensor
インターフェイスの属性であり、
物理オブジェクトが検知範囲外にある場合、この属性は null を返さなければならない。
6.1.2. max 属性
max
属性は、ProximitySensor
インターフェイスの属性であり、
6.1.3. near 属性
near
属性は、ProximitySensor
インターフェイスの属性であり、
物理オブジェクトが検知範囲外にある場合、この属性は null を返さなければならない。
注: 実装が near 値を提供できない場合、 near 値を distance の値から推定できる。 たとえば、distance が max と等しくない場合、それは 検知範囲内に物理オブジェクトが存在することを意味し得る。
7. 抽象操作
7.1. 近接センサーオブジェクトを構築する
- 入力
-
options、
SensorOptionsオブジェクト。 - 出力
-
ProximitySensorオブジェクト。
-
ProximitySensorを用いて センサーポリシー制御 機能をチェックするを呼び出した結果を allowed とする。 -
allowed が false なら、次を実行する:
-
新しい
ProximitySensorオブジェクトを proximity_sensor とする。 -
proximity_sensor および options を用いて センサーオブジェクトを初期化するを呼び出す。
-
proximity_sensor を返す。
8. 自動化
この節は、Generic Sensor API § 9 Automation を拡張し、Proximity Sensor 固有の仮想センサーメタデータを提供する。
型ごとの仮想センサーメタデータ マップ は、次のエントリを持たなければならない:
- キー
- 値
-
仮想センサーメタデータであって、その 読み取り値解析アルゴリズムが 近接読み取り値解析アルゴリズムであるもの。
8.1. 近接読み取り値解析アルゴリズム
-
新しいセンサー 読み取り値を reading とする。
-
« "
distance", "max" » という リストを keys とする。 -
keys の各 key について、反復する
-
parameters および key を用いて 単一値数値読み取り値を解析する を呼び出した結果を value とする。
-
value が undefined なら。
-
undefined を返す。
-
-
-
reading[key] を value[key] に 設定する。
-
-
parameters から "
near" を用いて プロパティを取得するを呼び出した結果を near とする。-
near の型が Boolean でないなら
-
undefined を返す。
-
-
reading["
near"] を near に 設定する。
-
-
reading を返す。
9. 近接センサーの制限
ほとんどの近接センサーは電磁放射 (例: 赤外線 または磁場) を検出するため、特定の材料特性が、物理オブジェクトの存在を検知する センサーの能力を妨げる可能性がある。センサーを妨げる可能性があるものには、 材料の半透明性、反射性、色、温度、化学組成、さらには物理オブジェクトが 放射をセンサーへ反射して戻す角度などが含まれるが、これらに限定されない。 したがって、近接センサーを距離を測定する手段として信頼するべきではない。 近接センサーから推論できる唯一のことは、ある程度の確実性をもって、 物理オブジェクトが最小検知距離と最大検知距離の間のどこかに存在するということである。
10. 謝辞
Generic Sensor API に関する作業およびこの仕様への入力について Tobie Langel に感謝する。 初期プロトタイプについて Doug Turner に、 テストスイートについて Marcos Caceres に感謝する。
11. 適合性
適合性要件は、記述的な表明と RFC 2119 用語の組み合わせで表現される。この文書の規範部分における キーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" は、 RFC 2119 で説明されるように解釈されるものとする。 ただし、読みやすさのため、これらの語はこの仕様では すべて大文字では現れない。
この仕様のすべてのテキストは、非規範として明示的に示された節、 例、および注を除き、規範的である。 [RFC2119]
適合ユーザー エージェントは、ユーザーエージェントに適用される、この仕様に列挙された すべての要件を実装しなければならない。
この仕様の IDL 断片は、Web IDL 仕様で説明される適合 IDL 断片に要求されるものとして 解釈されなければならない。 [WEBIDL]