如何使用Device Motion插件获取xamarin的磁力计值?

时间:2016-07-07 08:39:06

标签: c# cross-platform xamarin.forms devicemotion

我尝试获取xamarin开发的crossplateform应用程序的磁场数据。我是移动开发的初学者,特别是Xamarin。 所以我有Hello Word代码:

public App ()
        {
            // The root page of your application
                MainPage = new ContentPage {

            Content = new StackLayout {           
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {

                          XAlign = TextAlignment.Center,
                         Text = "Welcome to Xamarin Forms!"
                        }
                    }
                }

            }; 


        }

我想在第一页显示磁力计的3个坐标值。

Device Motion Plugin是一个多平台插件,我也有这个代码,但我不知道如何在应用程序中显示这些值。

        CrossDeviceMotion.Current.Start(MotionSensorType.Magnetometer);
        CrossDeviceMotion.Current.SensorValueChanged += (s, a) =>
        {

            switch (a.SensorType)
            {

                case MotionSensorType.Magnetometer:
                    Debug.WriteLine("A: {0},{1},{2}", ((MotionVector)a.Value).X, ((MotionVector)a.Value).Y, ((MotionVector)a.Value).Z);

                    break;

            }
        };

1 个答案:

答案 0 :(得分:0)

为了使其正常工作,您需要设置标签的x:Name属性。我一直在使用加速度计,所以我的名字是accelerometerLog

然后,从您的代码中,您可以执行以下操作:

accelerometerLog.Text = String.Format(
    "X:{0} Y:{1} Z:{2}", 
    ((MotionVector)a.Value).X, 
    ((MotionVector)a.Value).Y, 
    ((MotionVector)a.Value).Z
);