Я пытаюсь использовать интерфейс C++ Accelerometer в пространстве имен Windows::Devices::Sensors на Windows Phone 8. Код очень похож на мой проект C#, который работает, но я не могу получить событие C++ для огонь, как я могу с моим кодом C#.
Мой код C++ представляет собой проект C# с компонентом C++, компонент C++ просто открывает акселерометр для чтения, а затем пытается настроить событие для запуска всякий раз, когда данные готовы:
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()
, поэтому акселерометр работает, просто кажется, что это событие не запускается.
Заранее спасибо!