Skip to content

Commit

Permalink
2024/07/10 時点の英語版に基づき更新
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Sep 17, 2024
1 parent cf1a2a2 commit d7aa459
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions files/ja/web/api/sensor_apis/index.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
---
title: Sensor APIs
title: センサー API 群
slug: Web/API/Sensor_APIs
l10n:
sourceCommit: 8899f400df312bb5d49ef426173c19f3922029b4
---

{{DefaultAPISidebar("Sensor API")}}
{{securecontext_header}}{{DefaultAPISidebar("Sensor API")}}

**Sensor APIs** は、デバイスのセンサーを一貫した形でウェブプラットフォームから利用可能にする、共通の設計で作られたインターフェイスの集合です。
**センサー API 群** (Sensor APIs) は、端末のセンサー群を一貫した形でウェブプラットフォームから利用可能にする、共通の設計で作られたインターフェイスの集合です。

## Sensor APIs の概念と使用法
## 概念と使用法

Generic Sensor API の仕様では {{domxref('Sensor')}} インターフェイスが定義されていますが、ウェブ開発者がこれを用いることはないでしょう。かわりに、特定の種類のセンサーからデータを取得するために、そのサブクラスを用いることになります。たとえば、{{domxref('Accelerometer')}} インターフェイスは取得時にデバイスの 3 軸それぞれにかかっている加速度を返します。
一般センサー API (Generic Sensor API) の仕様では {{domxref('Sensor')}} インターフェイスが定義されていますが、ウェブ開発者がこれを用いることはないでしょう。かわりに、特定の種類のセンサーからデータを取得するために、そのサブクラスを用いることになります。たとえば、{{domxref('Accelerometer')}} インターフェイスは取得時に端末の 3 軸それぞれにかかっている加速度を返します。

センサーは、デバイスの物理的なセンサーに完全に対応していることも、対応していないこともあります。たとえば、{{domxref('Gyroscope')}} インターフェイスはデバイスの物理的なインターフェイスに完全に対応しています。一方、{{domxref('AbsoluteOrientationSensor')}} インターフェイスは 2 個以上のデバイスセンサーの情報をアルゴリズムにより組み合わせた情報を提供します。これらのセンサーの種類は、それぞれ _低レベル_ および _高レベル_ と呼ばれます。後者の種類のセンサーは、フュージョンセンサー (または、仮想センサー、合成センサー) とも呼ばれます。
センサーは、端末の物理的なセンサーに完全に対応していることも、対応していないこともあります。たとえば、{{domxref('Gyroscope')}} インターフェイスは端末の物理的なインターフェイスに完全に対応しています。一方、{{domxref('AbsoluteOrientationSensor')}} インターフェイスは 2 個以上の端末センサーの情報をアルゴリズムにより組み合わせた情報を提供します。これらのセンサーの種類は、それぞれ _低レベル_ および _高レベル_ と呼ばれます。後者の種類のセンサーは、フュージョンセンサー (または、仮想センサー、合成センサー) とも呼ばれます。

### 機能の検出

センサーインターフェイスは、対応するデバイスセンサーのプロキシーでしかありません。そのため、センサーの機能の検出は他の API より複雑になります。センサー API が存在するからといって、API が実際のハードウェアセンサーに接続されているか、センサーが動作するか、センサーの接続が維持されているか、ユーザーがセンサーへのアクセスを許可したかはわかりません。これらすべての情報を常に利用可能にしておくことは、パフォーマンスと電池の持ちに負担をかけます。
センサーインターフェイスは、対応する端末センサーのプロキシーでしかありません。そのため、センサーの機能の検出は他の API より複雑になります。センサー API が存在するからといって、API が実際のハードウェアセンサーに接続されているか、センサーが動作するか、センサーの接続が維持されているか、ユーザーがセンサーへのアクセスを許可したかはわかりません。これらすべての情報を常に利用可能にしておくと、パフォーマンスと電池の持ちに負担をかけます。

そのため、センサー API の機能を検出するには、API そのものを検出した上で、[防衛的プログラミングの戦略 (後述)](#防衛的プログラミング) をとらなければいけません。

Expand Down Expand Up @@ -45,9 +45,9 @@ if (window.AmbientLightSensor) {
- 使用時に投げられるエラーを監視する。
- エラーをきれいに処理し、ユーザー体験が損なわれず拡充されるようにする。

以下のコード例で、これらの原則を説明します。{{jsxref('statements/try...catch', 'try...catch')}} ブロックにより、センサーの生成時に投げられるエラーをキャッチします。{{domxref('Sensor.error_event', 'error')}} イベントを監視することで、使用時に投げられるエラーをキャッチします。ユーザーに何かが提示されるのは、[許可](/ja/docs/Web/API/Permissions_API)の要求が必要なときと、デバイスがこのセンサーの種類に対応していないときだけです
以下のコード例で、これらの原則を説明します。{{jsxref('statements/try...catch', 'try...catch')}} ブロックにより、センサーの生成時に投げられるエラーをキャッチします。{{domxref('Sensor.error_event', 'error')}} イベントを監視することで、使用時に投げられるエラーをキャッチします。ユーザーに何かが提示されるのは、[許可](/ja/docs/Web/API/Permissions_API)の要求が必要なときと、端末がこのセンサーの種類に対応していないときだけです

さらに、この機能はサーバーで設定された [Permissions Policy](/ja/docs/Web/HTTP/Permissions_Policy) によりブロックされる可能性があります。
さらに、この機能はサーバーで設定された [権限ポリシー](/ja/docs/Web/HTTP/Permissions_Policy) によりブロックされる可能性があります。

```js
let accelerometer = null;
Expand Down Expand Up @@ -80,7 +80,7 @@ try {

### 許可と Permissions Policy

センサーの計測値は、[Permissions API](/ja/docs/Web/API/Permissions_API) によりユーザーが特定のセンサーの種類を用いる許可を与え、かつサーバーの {{httpheader('Permissions-Policy')}} でブロックされていない場合のみ参照できます。
センサーの計測値は、[権限 API](/ja/docs/Web/API/Permissions_API) によりユーザーが特定のセンサーの種類を用いる許可を与え、かつサーバーの {{httpheader('Permissions-Policy')}} でブロックされていない場合のみ参照できます。

以下の例では、センサーを使用しようとする前にユーザーに許可を要求する方法を示します。

Expand Down Expand Up @@ -120,7 +120,7 @@ sensor.addEventListener("error", (error) => {

### 計測値

センサーの計測値は、すべてのセンサーの種類で継承されている {{domxref('Sensor.reading_event', 'reading')}} イベントコールバックを通じて取得できます。取得の頻度はセンサーのコンストラクターに渡すオプションで使用者が設定します。このオプションは、1 秒あたり何回取得するかを表す数値です。整数または小数を使用することができ、小数は 1 秒に 1 回未満の頻度を設定するとき用います。実際の取得頻度はデバイスのハードウェアに依存し、設定より少なくなる可能性があります。
センサーの計測値は、すべてのセンサーの種類で継承されている {{domxref('Sensor.reading_event', 'reading')}} イベントコールバックを通じて取得できます。取得の頻度はセンサーのコンストラクターに渡すオプションで使用者が設定します。このオプションは、1 秒あたり何回取得するかを表す数値です。整数または小数を使用することができ、小数は 1 秒に 1 回未満の頻度を設定するとき用います。実際の取得頻度は端末のハードウェアに依存し、設定より少なくなる可能性があります。

以下の例では、{{domxref('Magnetometer')}} センサーを用いてこれを説明します。

Expand All @@ -140,27 +140,27 @@ magSensor.start();

## インターフェイス

- {{domxref('AbsoluteOrientationSensor')}} {{securecontext_inline}}
- : 地球の参照用座標系に対するデバイスの物理的な向きを表します
- {{domxref('Accelerometer')}} {{securecontext_inline}}
- : デバイスの 3 軸それぞれにかかっている加速度を提供します。
- {{domxref('AmbientLightSensor')}} {{securecontext_inline}}
- : 現在の光レベル、すなわちホストデバイスの周囲の環境光の照度を返します
- {{domxref('GravitySensor')}} {{securecontext_inline}}
- : デバイスの 3 軸それぞれにかかっている重力を提供します。
- {{domxref('Gyroscope')}} {{securecontext_inline}}
- : デバイスの 3 軸それぞれの角速度を提供します。
- {{domxref('LinearAccelerationSensor')}} {{securecontext_inline}}
- : デバイスの 3 軸それぞれにかかっている加速度を、重力の影響を除いて提供します。
- {{domxref('Magnetometer')}} {{securecontext_inline}}
- : デバイスのプライマリー磁気センサーで検出される磁場の情報を提供します
- {{domxref('OrientationSensor')}} {{securecontext_inline}}
- {{domxref('AbsoluteOrientationSensor')}}
- : 地球の参照用座標系に対する端末の物理的な向きを表します
- {{domxref('Accelerometer')}}
- : 端末の 3 軸それぞれにかかっている加速度を提供します。
- {{domxref('AmbientLightSensor')}}
- : 現在の光レベル、すなわちホスト端末の周囲の環境光の照度を返します
- {{domxref('GravitySensor')}}
- : 端末の 3 軸それぞれにかかっている重力を提供します。
- {{domxref('Gyroscope')}}
- : 端末の 3 軸それぞれの角速度を提供します。
- {{domxref('LinearAccelerationSensor')}}
- : 端末の 3 軸それぞれにかかっている加速度を、重力の影響を除いて提供します。
- {{domxref('Magnetometer')}}
- : 端末のプライマリー磁気センサーで検出される磁場の情報を提供します
- {{domxref('OrientationSensor')}}
- : {{domxref('AbsoluteOrientationSensor')}} のベースクラスです。このインターフェイスを直接用いることはできませんが、継承するインターフェイスがアクセスするプロパティとメソッドを提供します。
- {{domxref('RelativeOrientationSensor')}} {{securecontext_inline}}
- : 地球の参照用座標系は考慮せず、デバイスの物理的な向きを表します
- {{domxref('Sensor')}} {{securecontext_inline}}
- {{domxref('RelativeOrientationSensor')}}
- : 地球の参照用座標系は考慮せず、端末の物理的な向きを表します
- {{domxref('Sensor')}}
- : 他のセンサーインターフェイスすべてのベースクラスです。このインターフェイスを直接用いることはできませんが、継承するインターフェイスがアクセスするプロパティ・イベントハンドラー・メソッドを提供します。
- {{domxref('SensorErrorEvent')}} {{securecontext_inline}}
- {{domxref('SensorErrorEvent')}}
- : {{domxref('Sensor')}} や関連するインターフェイスから投げられたエラーの情報を提供します。

## 仕様書
Expand Down

0 comments on commit d7aa459

Please sign in to comment.