安卓重力感应方向旋转修改

安卓重力感应方向旋转不对的时候修改方法如下

Index: frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java
===================================================================
--- frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java    (revision 1099)
+++ frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java    (working copy)
@@ -30,7 +30,7 @@
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.List;
-
+import android.util.Log;
/**
  * A special helper class used by the WindowManager
  * for receiving notifications from the SensorManager when
@@ -700,13 +700,13 @@
                                  case 2:
                                  {
                                           if( 45 <= orientationAngle && orientationAngle < 135)
-                                               nearestRotation = 1;
+                                               nearestRotation = 3;
                                           else if( 135 <= orientationAngle && orientationAngle < 225)
-                                               nearestRotation = 2;
+                                               nearestRotation = 0;
                                           else if( 225 <= orientationAngle && orientationAngle < 315)
-                                               nearestRotation = 3;
+                                               nearestRotation = 1;
                                           else
-                                               nearestRotation = 0;
+                                               nearestRotation = 2;
                                           break;
                                  }
                                  // original is horizontal, rotate 30 to be vertical
@@ -714,13 +714,13 @@
                                  case 3:
                                  {
                                           if( 30 <= orientationAngle && orientationAngle < 135)
-                                               nearestRotation = 1;
+                                               nearestRotation = 3;
                                           else if( 135 <= orientationAngle && orientationAngle< 225)
-                                               nearestRotation = 2;
+                                               nearestRotation = 0;
                                           else if( 225 <= orientationAngle && orientationAngle< 330)
-                                               nearestRotation = 3;
+                                               nearestRotation = 1;
                                           else
-                                               nearestRotation = 0;
+                                               nearestRotation = 2;
                                           break;
                                   }
                                   default:
@@ -730,7 +730,6 @@
                             if (nearestRotation == 4) {
                                 nearestRotation = 0;
                             }
-
                             // Determine the predicted orientation.
                             if (isTiltAngleAcceptableLocked(nearestRotation, tiltAngle)
                                     && isOrientationAngleAcceptableLocked(nearestRotation,

重力感应旋转方向顺时针逆时钟方向修改补丁如下

Index: frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java
===================================================================
--- frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java    (revision 1253)
+++ frameworks/base/services/core/java/com/android/server/policy/WindowOrientationListener.java    (working copy)
@@ -578,9 +578,9 @@
                 // The vector given in the SensorEvent points straight up (towards the sky) under
                 // ideal conditions (the phone is not accelerating).  I'll call this up vector
                 // elsewhere.
-                float x = event.values[ACCELEROMETER_DATA_X];
-                float y = event.values[ACCELEROMETER_DATA_Y];
-                float z = event.values[ACCELEROMETER_DATA_Z];
+                float x = -event.values[ACCELEROMETER_DATA_X];
+                float y = -event.values[ACCELEROMETER_DATA_Y];
+                float z = -event.values[ACCELEROMETER_DATA_Z];
                 if (LOG) {
                     Slog.v(TAG, "Raw acceleration vector: "
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术求索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值