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. 安全与隐私考量
Proximity sensor 提供有关传感器与附近对象接近程度的信息, 因而可能暴露对用户识别 和/或 指纹识别攻击敏感的隐私信息。
为缓解这些问题,用户代理应使用以下一种或两种缓解 策略:
-
降低传感器 读数的精度
-
限制最大采样频率
这些缓解策略补充了 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 值。
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对象。
-
令 allowed 为以
ProximitySensor调用 检查传感器策略控制 特性所得的结果。 -
如果 allowed 为 false,则:
-
令 proximity_sensor 为新的
ProximitySensor对象。 -
以 proximity_sensor 和 options 调用 初始化传感器对象。
-
返回 proximity_sensor。
8. 自动化
本节通过提供 Proximity Sensor 特定的虚拟传感器元数据, 扩展了 Generic Sensor API § 9 自动化。
按类型虚拟传感器元数据映射 必须具有以下条目:
8.1. 接近读数解析算法
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 规范中对 符合要求的 IDL 片段所描述的方式解释。[WEBIDL]