1. イントロダクション
近接センサーは、デバイスの主要な近接センサーによって検出される近接レベルに関する情報を提供するために、汎用センサー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. セキュリティとプライバシーに関する考慮事項
近接センサーは、センサーが近くの物体とどれだけ近いかに関する情報を提供するため、ユーザー識別やフィンガープリント攻撃向けにプライバシーに敏感な情報を露出する可能性があります。
これらに対処するため、ユーザーエージェントは次のいずれかまたは両方の緩和策を用いるべきです:
これらの緩和策は、汎用センサーAPIで定義されている汎用的な緩和策を補完します。[GENERIC-SENSOR]。
4. Permissions Policyとの統合
この仕様は、"proximity-sensor"
という文字列で識別されるポリシー制御機能を定義します。
その既定の許可リストは "self" です。
5. モデル
近接センサーのセンサータイプには、次の関連データがあります:
- 拡張センサーインターフェース
- センサー許可名
-
"
"proximity - センサー機能名
- 許可の取消しアルゴリズム
-
Generic Sensor Permission Revocation Algorithmを "
proximity" で呼び出す。 - デフォルトセンサー
-
デバイスの主な近接検出器。
- 仮想センサータイプ
-
"
proximity"
Sensorの近接センサーセンサータイプの最新の読み取り値には、キーが "distance", "max", "near" である3つのエントリが含まれ、それぞれの値にはdistance、max、nearの値が入ります。
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値を提供できない場合、distance値からnear値を推論することができます。例えば、distanceがmaxと等しくない場合、検知範囲に物理的な物体が存在すると推測できます。
7. 抽象操作
7.1. 近接センサーオブジェクトの構築
- 入力
-
options、
SensorOptionsオブジェクト。 - 出力
-
ProximitySensorオブジェクト。
-
allowedを、センサーポリシー制御機能を確認で
ProximitySensorを引数に呼び出した結果とする。 -
allowed が false の場合:
-
SecurityError
DOMExceptionを送出する。
-
-
proximity_sensor を新しい
ProximitySensorオブジェクトとする。 -
センサーオブジェクトの初期化を proximity_sensor と options で呼び出す。
-
proximity_sensor を返す。
8. 自動化
このセクションは、Generic Sensor API § 9 Automationを拡張し、近接センサー固有の仮想センサーメタデータを提供します。
タイプごとの仮想センサーメタデータ マップは、次のエントリを持たなければなりません:
- キー
- 値
-
仮想センサーメタデータで、その読み取り値パースアルゴリズムが 近接値パースアルゴリズムとなるもの。
8.1. 近接値パースアルゴリズム
-
reading を新しいセンサー読み取り値とする。
-
keys を リスト « "
distance", "max" »とする。 -
各 key について
-
単一値数値読み取りパースをparametersとkeyで呼び出した結果をvalueとする。
-
valueがundefinedの場合、
-
undefinedを返す。
-
-
-
Set reading[key] to value[key].
-
-
プロパティ取得をparametersと"
near"で呼び出した結果をnearとする。-
nearの型がBooleanでない場合
-
undefinedを返す。
-
-
Set reading["
near"] to near.
-
-
readingを返す。
9. 近接センサーの制限事項
ほとんどの近接センサーは電磁波(例:赤外線や磁場)を検出するため、特定の物質特性がセンサーの検出能力に干渉する場合があります。センサーに干渉し得るものには、素材の半透明性、反射率、色、温度、化学組成、さらには物理物体がセンサーに対して放射を反射する角度などが含まれますが、これらに限定されません。そのため、近接センサーを距離測定手段として頼るべきではありません。近接センサーからわかることは、物理的な物体が最小検知距離と最大検知距離の間のどこかに一定の確度で存在する、ということだけです。
10. 謝辞
Tobie Langel(Generic Sensor APIへの貢献および本仕様への意見)、Doug Turner(初期プロトタイプ)、Marcos Caceres(テストスイート)に感謝します。
11. 適合性
適合性要件は、記述的な主張とRFC 2119の用語を組み合わせて表現されます。「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」といったキーワードは、RFC 2119に記載された意味で解釈されます。ただし、本仕様ではこれらの単語はすべて大文字で表記されていません。
本仕様の全テキストは、明示的に非規範的と示されたセクション・例・注記を除き規範的です。[RFC2119]
適合ユーザーエージェントは、ユーザーエージェントに適用可能な本仕様に記載されたすべての要件を実装しなければなりません。
本仕様のIDL断片は、Web IDL仕様書 [WEBIDL]にある適合IDL断片として解釈されなければなりません。