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 |
每次方向传感器报告新的传感器读数时发生。 |