Android——加速传感器(ACCELEROMETER)的应用
加速传感器可以实现摇一摇的功能,通过你速度的变化来对它进行设置监听。
和之前获得传感器的方法类似,不过多了监听而已。
1、SensorManager sm
=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
获得传感器服务。
2、Sensor sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
获得加速传感器。
3、SensorEventListener listener=new SensorEventListener();
里面有两个重写方法,onSensorChanged和onAccuracyChanged。
onSensorChanged在传感器值更改时调用。该方法只对受此应用程序监视的传感器调
用,当传感器的准确性更改时,将调用onAccuracyChanged(int sensor,int accuracy)
方法。一般咱们对数值改变进行调用第一个方法。
4、监听对象listener有了需要给加速器注册监听事件。
sm.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
最后一个参数就选成普通速率就好了。
5、解注册。
在Activity的ondestroy方法中执行sm.unregisterListener(listener);解开注册。
来做一个摇一摇的功能,通过摇动手机来进行记录次数,同时给他加上振动效果。
public class MainActivity extends Activity {private TextView tv;private Sensor sensor;private SensorManager sm;private SensorEventListener listener;private int count;private Vibrator vibrator;private int mx,my,mz;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv=(TextView) findViewById(R.id.tv);}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();sm.unregisterListener(listener);}public void yao(View v)//button的监听事件{sm=(SensorManager) getSystemService(Context.SENSOR_SERVICE);sensor=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);listener=new SensorEventListener() {@Overridepublic void onSensorChanged(SensorEvent event) {// TODO Auto-generated method stubfloat xyz[]=event.values;//获得加速器三个方位x,y,z的数值集合int x=(int) xyz[0];int y=(int) xyz[1];int z=(int) xyz[2];if(Math.abs(x-mx)>30||Math.abs(y-my)>30||Math.abs(z-mz)>30)//mx是相对于之前比较的数据。{//获得振动服务 需要添加权限vibrator=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);vibrator.vibrate(400);//振动400毫秒count++;tv.setText(count+"");}mx=x;my=y;mz=z;}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub}};sm.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);}
}
振动权限:
< uses-permission android:name=”android.permission.VIBRATE”/>
Android——加速传感器(ACCELEROMETER)的应用相关推荐
- android 加速传感器计步,哪位大哥哥有 安卓手机加速度传感器的计步器源码,,...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 现在 好一点的 都有陀螺仪,系统实现了计步 没有的,那个计算出来的 不是很准. 根据波动的阈值范围来判定, 代码 贴给你 注释也很清楚了 抱歉,您的贴子超 ...
- libgdx 处理加速传感器
libgdx 已经对Android加速传感器做了封装,使得用起来非常方便. 一,关于开启和关闭加速传感器 默认地,libgdx开启了加速传感器,因此程序中可以直接获取.那如何控制加速传感器的开启和关闭 ...
- Android 传感器之《加速传感器》——摇一摇功能
Android传感器开发参考网站: Android Developers镜像网站:http://wear.techbrood.com/guide/topics/sensors/sensors_over ...
- android动作传感器
android动作传感器 Android平台支持一些用于监视设备动作的传感器(这样的传感器共有5个).其中两个(加速传感器和陀螺仪传感器)是纯的硬件传感器.另外三个(重力传感器.线性加速传感器和旋转向 ...
- 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值 ...
- Android 硬件传感器
为什么80%的码农都做不了架构师?>>> 1. 传感器入门 自从苹果公司在2007年发布第一代iPhone以来,以前看似和手机挨不着边的传感器也逐渐成为手机硬件的重要组成部分.如果读 ...
- 传感器(7)加速传感器,重力传感器,邻近传感器,光线传感器 综合示例
综合示例,包含: //加速传感器 //重力传感器 //邻近传感器 //光线传感器 1 import android.app.Activity; 2 import android.hardware.Se ...
- 【转】Android 加速度传感器 (G-Sensor)
http://blog.csdn.net/stevenliyong/archive/2009/09/13/4547568.aspx Android 加速度传感器 (G-Sensor) 收藏 Andro ...
- 转- android硬件传感器
纯属转载:http://dev.10086.cn/cmdn/bbs/thread-41843-1-1.html 1.传感器入门 自从苹果公司在2007年发布第一代iPhone以来,以前看似和手机挨 ...
最新文章
- Code::Blocks 使用技巧总结
- MirantisOpenStack-Fuel 9.0
- 雷林鹏分享:XML 命名空间
- Cloud一分钟 | 马云发表致股东的公开信;5G算什么?中国已着手研究6G相关工作...
- python 网格_Python | 网格到情节
- uniapp手写_【转】uni-app框架纯手写微信小程序开发左侧滑动菜单
- 《OD学spark》20161022
- Ubuntu gedit中文乱码-转
- php视图最佳实践,PHP 的最佳实践
- 解决Mac网速越来越慢(飞一般的感觉)
- Spring的Bean有哪些作用域?
- cad2008加载 et拓展工具_CAD设计师的工具,55款实用插件,收藏起来
- matlab2010b显示激活界面_【转】Matlab2010b许可证过期问题,反复提示激活
- 通过PyMuPDF编写增值税发票多PDF文件合并工具
- AppThinning之AppSlicing
- 百度2023校招 内推码IVV4AS
- oracle12c 日志分析,【案例】Oracle 12C日志大量Resize operation completed for file信息
- MySQL之子查询优化
- python 对txt中每行内容进行批量替换
- (转载)虚幻引擎3--【UnrealScript教程】章节一:11.Struct结构体