1. 소개
Proximity Sensor는 Generic Sensor API [GENERIC-SENSOR]를 확장하여 기기의 주 근접 센서가 감지한 근접 수준에 대한 정보를 제공한다. 근접 수준은 센서에서 가장 가까운 보이는 표면까지의 거리(센티미터 단위)로 보고된다. § 9 근접 센서의 한계는 잠재적 한계에 대해 더 자세히 설명하며, 감지 방법, 센서 구성 등의 차이로 인해 서로 다른 기기가 보고하는 정확한 거리 값이 다를 수 있는 이유도 설명한다. 또한 일부 근접 센서는 거리의 절대값보다는, 존재 감지에 더 가깝게 가까운 물리적 객체가 있는지를 나타내는 boolean만 제공할 수 있다.
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 값을 포함하는 세 개의
항목을 포함한다.
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객체.
-
ProximitySensor로 센서 정책 제어 기능 검사를 호출한 결과를 allowed라고 하자. -
allowed가 false이면:
-
새
ProximitySensor객체를 proximity_sensor라고 하자. -
proximity_sensor와 options로 센서 객체 초기화를 호출한다.
-
proximity_sensor를 반환한다.
8. 자동화
이 절은 Generic Sensor API § 9 자동화를 확장하여 Proximity Sensor에 특화된 가상 센서 메타데이터를 제공한다.
타입별 가상 센서 메타데이터 map은 다음 항목을 가져야 한다:
- 키
- 값
8.1. 근접 판독값 구문 분석 알고리즘
-
새 센서 판독값을 reading이라고 하자.
-
keys를 list « "
distance", "max" »라고 하자. -
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", "OPTIONAL"은 RFC 2119에 설명된 대로 해석되어야 한다. 그러나 가독성을 위해, 이 명세에서 이러한 단어가 항상 대문자로 나타나는 것은 아니다.
이 명세의 모든 텍스트는 규범적이다. 단, 명시적으로 비규범적으로 표시된 절, 예제 및 참고는 제외한다. [RFC2119]
적합한 사용자 에이전트는 사용자 에이전트에 적용 가능한 이 명세에 나열된 모든 요구사항을 구현해야 한다.
이 명세의 IDL 조각은 Web IDL 명세에 설명된 바와 같이 적합한 IDL 조각에 요구되는 대로 해석되어야 한다. [WEBIDL]