我正在尝试在 Windows Phone 8 上的 Windows::Devices::Sensors 命名空间中使用 C++ Accelerometer 接口。代码与我拥有的 C# 项目非常相似,但我无法获得 C++ 事件我可以用我的 C# 代码开火。
我的 C++ 代码是一个带有 C++ 组件的 C# 项目,C++ 组件只是打开 Accelerometer 设备进行读取,然后尝试设置一个事件以在数据准备好时触发:
AccelerometerWrapper::AccelerometerWrapper() {
Accelerometer^ acc = Accelerometer::GetDefault();
accReading = acc->ReadingChanged::add( ref new TypedEventHandler<Accelerometer^, AccelerometerReadingChangedEventArgs^>(this, &AccelerometerWrapper::ReadingChanged));
}
void AccelerometerWrapper::ReadingChanged(Accelerometer^ sender, AccelerometerReadingChangedEventArgs^ e) {
...
}
不幸的是,我的ReadingChanged()
函数从未被调用过。我四处寻找一种Start()
方法或类似的方法,但我找不到任何东西。我的大部分知识都来自AccelerometerCPP 示例,但我无法实际测试它,因为它是一个通用的 WinRT(例如 Windows 8,而不是 Windows Phone 8)示例,而且我的计算机没有加速度计。一切都编译并运行,事件永远不会被触发。
编辑:我已经成功运行了一个测试来验证我可以手动调用acc->GetCurrentReading()
,所以加速度计正在工作,它似乎是没有被触发的事件。
先感谢您!