2015-08-17 47 views
0

我正在開發Windows Phone 8.1的應用程序,並且需要檢測手機的移動。Windows Phone 8.1,加速計給出錯誤的讀數

例如,我需要檢測的兩種情況之一:

用戶湊到電話放下 enter image description here

和用戶傾斜手機最多 enter image description here

這裏是應用程序顯示acelerometer截圖當手機位於第二張照片時的讀數。

enter image description here

X軸,Y軸和Z軸是相同的(相同的我的設備上)。在手機朝上的第二張照片中,X = -0.5317。看起來像是由於某種原因,所有軸都取這個值。

這是代碼。

public RoundPage() 
{ 
    this.InitializeComponent(); 

    // ... 

    this._accelerometer = Accelerometer.GetDefault(); 
    this._accelerometer.ReadingChanged += _accelerometer_ReadingChanged; 
} 

async void _accelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args) 
{ 
    double xAxis = args.Reading.AccelerationX; 
    double yAxis = args.Reading.AccelerationY; 
    double zAxis = args.Reading.AccelerationZ; 

    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
     { 
      AccTextBlock.Text = String.Format("X: {0:f2} Y: {0:f2} Z: {0:f2}", 
       xAxis, 
       yAxis, 
       zAxis); 
     }); 
} 

我在做什麼錯?什麼是正確的方式來檢測這個讀數。

回答

1

我在String.Format方法中犯了錯誤,我總是打印xAxis({0})。