2012-05-01 18 views
3

1台の平面で電話機の向きの角度を決定するにはどうすればよいですか?携帯電話の傾きを検出する方法は?

今、私はSensorManagerを通してそれを作る:

ここ
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); 

... 

public void onSensorChanged(SensorEvent event) { 
    xy_angle = event.values[0]; 
    xz_angle = event.values[1]; 
    zy_angle = event.values[2]; 

私は、異なる角度を得るが、青色の線に沿って運転している間、私は、携帯電話の回転に応じて変化するだけで1つの角度を、必要とします。

どのようにしてこの角度を得るか?

http://i.stack.imgur.com/kCElj.jpg

How can I use SensorManager.getOrientation for tilt controls like "My Paper Plane"? - ここ同様の問題が、私は著者が自分の問題を解決する方法を理解していません。

+0

もしあなたが1つの解決策を共有してください: –

答えて

2

必要なものはSensorManager.getOrientation()です。

if (SensorManager.getRotationMatrix(m_rotationMatrix, null, 
            m_lastMagFields, m_lastAccels)) { 

へ:

0

その質問の著者は、彼のパラメータの順序を切り替えることで、彼の問題を解決し

if (SensorManager.getRotationMatrix(m_rotationMatrix, null, 
           m_lastAccels, m_lastMagFields)) { 
2

私はので、多分それはで回答されています、このポストは少し古いであることがわかり現在、Sensor.TYPE_ORIENTATIONは廃止され、SensorManager.getOrientation()が採用されました。 http://blog.samsandberg.com/2015/05/10/tilt-for-android/

はそれが誰かが同じものを探しているホープ:

は、私は基本的にあなたがここに探しているものの完全な過去記事をやりました!

+3

死んだリンク:(あなたは更新されたバージョンがありますか? – Tudor

+0

それは申し訳ありません - ブログは迷惑メールで詰まっていました。 –

関連する問題