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

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

1vi drivers/input/gsensor/mma7660.c

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

1axis.y = mma7660_convert_to_int(buffer[MMA7660_REG_X_OUT]);

2axis.x = mma7660_convert_to_int(buffer[MMA7660_REG_Y_OUT]);

3axis.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)

1vim frameworks/base/core/java/android/view/WindowOrientationListener.java

1public 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屏幕重力感应器,android屏幕重力感应如何实现,很质量的一个问题相关推荐

  1. android系统重力感应传感器 方向控制与方向切换,android sensor orientation 方向传感器 重力感应...

    首先,获取方向传感器(参照http://developer.android.com/reference/android/hardware/SensorManager.html): publicclas ...

  2. android手机重力感应例子

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

  3. Android重力感应基础

    android中的很多游戏的游戏都使用了重力感应的技术,但其api demo却并没有重力感应的实例(不知道是不是我没找到,找到的朋友麻烦告诉我一下,谢谢),因为开发的需要,就研究了一下重力感应这方面, ...

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

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

  5. linux屏幕旋转后触控不准,手机重力感应失效解决方法 不能自动旋转屏幕怎么设置...

    如今手机已经成为人们生活中必不可少的一个工具了,在使用过程也常常会遇到各种各样的问题,比如当手机重力感应失效的时候应该怎么解决呢,手机不能自动旋转屏幕要怎么设置,针对这个问题下面就为大家带来最新解决方 ...

  6. Android游戏开发Android软件开发【教程三十篇】

    Android软件开发之发送短信与系统短信库解析(三十)  New Android软件开发之获取通讯录联系人信息(二十九)  New Android软件开发之PreferenceActivity中的组 ...

  7. android布局错,Android Studio布局错误

    嘿,我真的需要你的帮助 . 我的问题是Android Studio不会在模拟器或物理设备中正确显示布局 . 每当我放置一个textView,按钮等,我想将它居中(水平,垂直或两者),然后我启动模拟器它 ...

  8. Android 屏幕重力感应

    由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码. 解决屏幕显示颠倒相关问题,相关的有两部分代码: 1. 内核重力感应器驱动部分,如 MMA7660 1 vi drivers/input ...

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

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

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

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

最新文章

  1. 什么样的NLP库,可以支持53种语言?
  2. 怎样把一个项目加入微服务器,构建微服务:快速搭建Spring Boot项目
  3. 文本文件、Excel文件上传下传
  4. Linux CentOS 6.x设置静态IP(亲测有效)
  5. java代码审计ssrf危险函数_某租车系统Java代码审计之后台注入漏洞分析
  6. 电脑故障扫描修复软件_电脑故障分析:电脑安装软件提示没有权限的解决方法...
  7. 整理好的200多java面试题,可用于机器学习
  8. CCF201809-3 元素选择器(100分)【文本处理】
  9. Php开发银行接口之浦发银行
  10. 78. Cookie
  11. Model to Text工具Acceleo使用教程(七)——模板服务
  12. 基于MATLAB的车牌识别(GUI)
  13. amaze UI的使用
  14. Android学习别“走弯路”,移动端混合开发框架
  15. 网络营销培训:如何进行H5活动宣传?
  16. JUNIPER路由器中常用命令总结
  17. (Animator详解一)mixamo动画导入Unity的一些配置
  18. 如何在内网主机上快速搭建一个Wordpress个人网站
  19. vr全景系统平台哪家好, vr全景是什么?
  20. 单细胞转录组分析R包安装

热门文章

  1. 2021智能零售领域最具商业合作价值企业盘点
  2. 西湖论剑2021中国杭州网络安全技能大赛部分Writeup
  3. 阿里云国际版忘记会员名或登录密码,怎么办?
  4. 【人工智能Prolog】mother、father和grandpa
  5. ESX添加过时的硬件
  6. 浅谈利用javascript实现gb2312编码。
  7. 旅游网站毕业设计,旅游网站网页设计设计源码,旅游网站设计毕业论文
  8. linux kernel pwn学习之堆漏洞利用+bypass smap、smep
  9. 竖流式沉淀池集水槽设计计算_竖流沉淀池设计计算书.doc
  10. 好书推荐《月亮与六便士》