OrientationSensor クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public ref class OrientationSensor sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class OrientationSensor final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class OrientationSensor
Public NotInheritable Class OrientationSensor
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
注釈
センサー データは、デバイスの固定センサー座標系に対して提供され、表示の向きに依存しません。 入力制御や画面上の要素の操作にセンサー データに依存するアプリケーションの場合、開発者は現在の表示方向を考慮し、データを適切に補正する必要があります。 センサー座標系の詳細については、「 センサー データと表示の向き」を参照してください。
次の例では、XAML と C# で構築された UWP アプリで GetDefault メソッドを使用して方向センサーへの接続を確立する方法を示します。 方向センサーが見つからない場合、メソッドは null 値を返します。
_sensor = OrientationSensor.GetDefault();
次の例では、XAML で構築された UWP アプリが ReadingChanged イベント ハンドラーを登録する方法を示します。
private void ScenarioEnable(object sender, RoutedEventArgs e)
{
if (_sensor != null)
{
// Establish the report interval
_sensor.ReportInterval = _desiredReportInterval;
Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
_sensor.ReadingChanged += new TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs>(ReadingChanged);
ScenarioEnableButton.IsEnabled = false;
ScenarioDisableButton.IsEnabled = true;
}
else
{
rootPage.NotifyUser("No orientation sensor found", NotifyType.StatusMessage);
}
}
次の例は、 ReadingChanged イベント ハンドラーを示しています。
async private void ReadingChanged(object sender, OrientationSensorReadingChangedEventArgs e)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
OrientationSensorReading reading = e.Reading;
// Quaternion values
SensorQuaternion quaternion = reading.Quaternion; // get a reference to the object to avoid re-creating it for each access
ScenarioOutput_X.Text = String.Format("{0,8:0.00000}", quaternion.X);
ScenarioOutput_Y.Text = String.Format("{0,8:0.00000}", quaternion.Y);
ScenarioOutput_Z.Text = String.Format("{0,8:0.00000}", quaternion.Z);
ScenarioOutput_W.Text = String.Format("{0,8:0.00000}", quaternion.W);
// Rotation Matrix values
SensorRotationMatrix rotationMatrix = reading.RotationMatrix;
ScenarioOutput_M11.Text = String.Format("{0,8:0.00000}", rotationMatrix.M11);
ScenarioOutput_M12.Text = String.Format("{0,8:0.00000}", rotationMatrix.M12);
ScenarioOutput_M13.Text = String.Format("{0,8:0.00000}", rotationMatrix.M13);
ScenarioOutput_M21.Text = String.Format("{0,8:0.00000}", rotationMatrix.M21);
ScenarioOutput_M22.Text = String.Format("{0,8:0.00000}", rotationMatrix.M22);
ScenarioOutput_M23.Text = String.Format("{0,8:0.00000}", rotationMatrix.M23);
ScenarioOutput_M31.Text = String.Format("{0,8:0.00000}", rotationMatrix.M31);
ScenarioOutput_M32.Text = String.Format("{0,8:0.00000}", rotationMatrix.M32);
ScenarioOutput_M33.Text = String.Format("{0,8:0.00000}", rotationMatrix.M33);
});
}
バージョン履歴
Windows のバージョン | SDK バージョン | 追加された値 |
---|---|---|
1607 | 14393 | GetDefault(SensorReadingType) |
1607 | 14393 | GetDefault(SensorReadingType,SensorOptimizationGoal) |
1709 | 16299 | FromIdAsync |
1709 | 16299 | GetDeviceSelector(SensorReadingType) |
1709 | 16299 | GetDeviceSelector(SensorReadingType,SensorOptimizationGoal) |
1709 | 16299 | MaxBatchSize |
1709 | 16299 | ReportLatency |
プロパティ
DeviceId |
デバイス識別子を取得します。 |
MaxBatchSize |
センサーによってバッチ処理できるイベントの最大数を取得します。 |
MinimumReportInterval |
センサーでサポートされている最小レポート間隔を取得します。 |
ReadingTransform |
センサー データに適用する必要がある変換を取得または設定します。 適用する変換は、センサー データの配置に使用する表示方向に関連付けられます。 |
ReadingType |
センサーの読み取りの種類を取得します。 |
ReportInterval |
センサーでサポートされるレポート間隔を取得または設定します。 |
ReportLatency |
センサー情報のバッチ間の遅延を取得または設定します。 |
メソッド
FromIdAsync(String) |
センサーをその識別子から非同期に取得します。 |
GetCurrentReading() |
現在のセンサーの読み取り値を取得します。 |
GetDefault() |
絶対読み取りの既定の向きセンサーを返します。 |
GetDefault(SensorReadingType) |
精度の設定を考慮して、既定の方向センサーを返します。 |
GetDefault(SensorReadingType, SensorOptimizationGoal) |
電源と精度の設定を考慮して、既定の方向センサーを返します。 |
GetDefaultForRelativeReadings() |
相対読み取りの既定の向きセンサーを返します。 |
GetDeviceSelector(SensorReadingType) |
デバイス セレクターを取得します。 |
GetDeviceSelector(SensorReadingType, SensorOptimizationGoal) |
デバイス セレクターを取得します。 |
イベント
ReadingChanged |
向きセンサーが新しいセンサーの読み取りを報告するたびに発生します。 |