由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码。

解决屏幕显示颠倒相关问题,相关的有两部分代码:

1. 内核重力感应器驱动部分,如 MMA7660

1 vi drivers/input/gsensor/mma7660.c

在这个文件中寻找相似以下的代码

1 axis.y = mma7660_convert_to_int(buffer[MMA7660_REG_X_OUT]);
2 axis.x = mma7660_convert_to_int(buffer[MMA7660_REG_Y_OUT]);
3 axis.z = mma7660_convert_to_int(buffer[MMA7660_REG_Z_OUT]);

然后按照你自己板的需要,将 X,Y 进行交换,进行相反数运算,将 Z 进行相反运算。

其实可以做得更方便一些,把这几个操作写到 Kconfig 里面,通过宏来控制这些运算,就不用再改代码了。

01 #ifdef CONFIG_SWAP_XY
02 {
03   typeof(x) __tmp;
04   __tmp = x;
05   x = y;
06   y = __tmp;
07 }
08 #endif
09   
10 #ifdef CONFIG_REVERSE_X
11   x = -x;
12 #endif
13   
14 #ifdef CONFIG_REVERSE_Y
15   y = -y;
16 #endif
17 /* X Y 感应方向有问题,这很容易看出来。 */
18 #ifdef CONFIG_REVERSE_Z
19   z = -z;  /* 按正常情况下拿着设备,屏幕斜向上,如果不灵敏,把屏幕朝下试试,如果灵敏了,一般是 Z 反了。 */
20 #endif

2. Android部分,如果出现菜单显示正常,但是玩重力感应游戏时有问题,这部分就要修改(2.1)

1 vim frameworks/base/core/java/android/view/WindowOrientationListener.java
1 public void onSensorChanged(SensorEvent event) {
2     float[] values = event.values;
3     float X = values[_DATA_X];
4     float Y = values[_DATA_Y];
5     float Z = values[_DATA_Z];
6     float OneEightyOverPi = 57.29577957855f;
7     float gravity = (float) Math.sqrt(X*X+Y*Y+Z*Z);

Android 屏幕重力感应相关推荐

  1. android修改重力感应方向

    在这里简要的为大家介绍一下我曾经改过android手机重力感应的一点知识... 首先,大家要android手机重力感应,那么必须得有你自己机器的源代码吧, 开始在网上找到蛮多资料,但是按其所说并不能实 ...

  2. android手机重力感应例子

    手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 ...

  3. Android 手机重力感应实现简单介绍

    手机重力感应实现简单介绍            现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 ...

  4. Android 之重力感应

    Android系统支持重力感应,可以利用手机的移动.翻转来实现更为有趣的程序,在这里介绍一种在模拟器上模拟重力感应的工具(sersorsimulator), 这个工具分为服务器端和客户端,服务器是一个 ...

  5. android 利用重力感应监听 来电时翻转手机后静音。

       在CallNotifier.java中 加入如下代码: public void GetSensorManager(Context context) {sm = (SensorManager) c ...

  6. Android根据重力感应选装方向,四个方向都支持

    不废话,直接上源码: 辅助工具类ChangeOrientationHandler.java public class ChangeOrientationHandler extends Handler ...

  7. 让android程序根据重力感应旋转屏幕(支持4个方向旋转)

    最近公司在做一个软件,用户要求软件能随着手机转动自动切换横屏和竖屏,而且要求就算是手机头下脚上的倒个个软件也要能自适应的变成合适的方向.熟悉android的人都知道,android系统的手机绝大部分只 ...

  8. Android 监听重力感应方向传感器改变屏幕方向

    重力感应方向传感器监听事件 /*** @Description: 重力感应方向传感器监听*/ public class OrientationListener implements SensorEve ...

  9. android小游戏模版—重力感应

    好久没更新博客了,今天来谈谈android小游戏---重力感应,一般在游戏里运用的比較多,比方这类游戏有:神庙逃亡.极品飞车,平衡球.三围重力迷宫,重力赛车等. 首先什么是重力感应.重力感应是指如今手 ...

最新文章

  1. python pytorch 包的安装
  2. 「欧洲AI联合实验室」ELLIS成立:誓与中美抢人才
  3. 电脑关机慢是什么原因_为什么电脑无法关机?电脑无法正常关机的解决方案
  4. Cocos2d-x内置粒子系统
  5. java多线程系列:ThreadPoolExecutor源码分析
  6. javascript编译压缩
  7. 谷歌浏览器如何更改语言
  8. 怎么安装python3.7 setuptools与pip_如何安装python到setuptools、pip工具安装
  9. python怎么部署到tomcat_使用python将war部署到tomcat
  10. 【bzoj4550】小奇的博弈 博弈论+dp
  11. 你们真的了解JS的事件吗?
  12. python用程序说爱你_用python写一个聊天小程序!和女朋友的专属聊天工具!
  13. 如何在Java应用中提交Spark任务?
  14. 数字化综合档案管理系统 佰档管家|匠心打造
  15. oracle误删除数据恢复
  16. Dubbo之手写RPC框架
  17. 开源ESB服务总线记录
  18. 计算机指令集类型,指令集分类 (CISC,RISC和VLIW等)
  19. 【Linux】域名解析
  20. 新底座、新产品、新方案,2022用友BIP技术大会三大数智化突破

热门文章

  1. 博客文章索引汇总--工业互联网
  2. CSDN:写博客时怎么添加文章目录,然后点击目录跳转到对应的内容目录?
  3. 基于java的数字签名技术在电子政务中的应用
  4. wxpython动态实时绘图_wxPython 画图板
  5. 计算机外设分为三类,电脑外设有哪些
  6. 财务管理【第二章】【货币时间价值、风险】
  7. 绘画Psd文件下载网址记录
  8. 1解决“下载软件仓库信息失败,检查您的internet连接“问题
  9. Kaggle入门-泰坦尼克号之灾
  10. 江门晚稻播种135万亩 国稻种芯·中国水稻节:广东以晚补早