扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
重力感应是指现在手机中常用的一个器件,及加速度传感器。
成都创新互联专注于吴中网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供吴中营销型网站建设,吴中网站制作、吴中网页设计、吴中网站官网定制、微信小程序服务,打造吴中网络公司原创品牌,更为您提供吴中网站排名全网营销落地服务。
当手机静止时,加速度就是重力,所以一般也叫做重力传感器。
这个硬件可以感应加速度的变化,转化为数据提供给系统。
系统可以根据这些数据做一些事情。
最基本的应用就是根据重力旋转屏幕。
当然,这个东西属于锦上添花的玩意,没有它还是一个完整的系统。
你好,屏幕转屏和重力感应是没有牵连的,重力感应也不能设置,只能设置距离感应,距离感应就是你打电话时手机屏幕会自动黑掉,等你打完了,从耳朵边拿开的时候手机屏幕会自动亮起来,这个就是距离感应,你要设置转屏,设置—显示—屏幕自动旋转,去掉勾就可以了,如果手机游戏没有重力感应了,可能是那款游戏不支持,可以下载雷霆赛车来试试,如果还是不能使用重力感应,那就说明你手机坏了。
扩展资料:
通过对力敏感的传感器,感受手机在变换姿势时,重心的变化,使手机光标变化位置从而实现选择的功能。
手机重力感应技术:利用压电效应实现,简单来说是是测量内部一片重物(重物和压电片做成一体)重力正交两个方向(x轴与y轴)的分力大小,来判定水平方向。
手机重力感应指的是手机内置重力摇杆芯片,支持摇晃切换所需的界面和功能,甩歌甩屏,翻转静音,甩动切换视频等,是一种非常具有使用乐趣的功能。
传感器是一种能把物理量或化学量转变成便于利用的电信号的器件。国际电工委员会(IEC:International Electrotechnical Committee)的定义为:“传感器是测量系统中的一种前置部件,它将输入变量转换成可供测量的信号”。按照Gopel等的说法是:“传感器是包括承载体和电路连接的敏感元件”,而“传感器系统则是组合有某种信息处理(模拟或数字)能力的系统”。传感器是传感系统的一个组成部分,它是被测量信号输入的第一道关口。 传感器把某种形式的能量转换成另一种形式的能量。
ndroid中检测重力感应变化大致需要下面几个步骤:
1) 得到传感器服务 getSystemService(SENSOR_SERVICE);
得到一个SensorManager,用来管理分配调度处理Sensor的工作,注意它并不服务运行于后台,真正属于Sensor的系统服务是SensorService,终端下#service list可以看到sensorservice: [android.gui.SensorServer]。
2) 得到传感器类型 getDefaultSensor(Sensor.TYPE_GRAVITY);
当然还有各种千奇百怪的传感器,可以查阅Android官网API或者源码Sensor.java。
3) 注册监听器 SensorEventListener
应用程序打开一个监听接口,专门处理传感器的数据,这个监听机制比较重要,被系统广泛使用。
4) 实现监听器的回调函数 onSensorChanged, onAccuracyChanged
由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码.
解决屏幕显示颠倒相关问题,相关的有两部分代码:
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_XY02{
03 typeof(x) __tmp;
04 __tmp = x;05 x = y;
06 y = __tmp;07}08#endif09
10#ifdef CONFIG_REVERSE_X11 x = -x;12#endif13
14#ifdef CONFIG_REVERSE_Y15 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;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流