加速度計の変更を表示する Windows8 デスクトップ アプリケーションで c# で簡単なアプリケーションを作成しようとしています。私は windows7.SensorsAndLocation dll を使用しており、次のコードを記述しています。
private static Accelerometer3D _accelerometer3D;
private static Accelerometer3DReport _accelerometer3DReport;
static void Main(string[] args)
{
Sensor[] accelerometers = SensorManager.GetSensorsByType(SensorTypes.Accelerometer3d);
if (accelerometers.Length > 0)
{
_accelerometer3D = (Accelerometer3D)accelerometers[0];
_accelerometer3D.DataUpdated += _accelerometer3D_DataUpdated;
}
Console.ReadLine();
}
static void _accelerometer3D_DataUpdated(Sensor sensor, SensorDataReport dataReport)
{
_accelerometer3DReport = dataReport as Accelerometer3DReport;
float f = _accelerometer3DReport.AxisX_G;
}
このコードを実行してデータが更新されると、_accelerometer3D_DataUpdated 関数が実行されますが、次の行でクラッシュしました。
float f = _accelerometer3DReport.AxisX_G;
system.invalidcastexception: 指定されたキャストが無効です。他の詳細は見ていません。
ambientLightSensors で同じコードを実行すると、正常に動作します。
助言がありますか?
助けてください!!!注: デスクトップ アプリケーションを使用しているため、windows8 センサー API を使用できません。そしてもちろん、デバイス (Microsoft Surface Pro x64) には加速度計があります。
ありがとう!