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 |
방향 센서가 새 센서 판독값을 보고할 때마다 발생합니다. |