版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 开发传感器应用用Context的 getSystemService (Context.SENSOR_SERVICE)获取SensorManager对象。用SenserManager对象的 getDefaultSensor(int type)获取指定类型的传感器在Activity的 onResume中调用SensorManager的registerListener()为指定传感器注册监听器1. 开发传感器应用SensorManager 的registerListener(SensorEventListener ,Sensor sensor, int rate);rate: 获取传感器数据的
2、频率SensorManager.SENSOR_DELAY_FASTESTSensorManager.SENSOR_DELAY_GAMESensorManager.SENSOR_DELAY_NORMALSensorManager.SENSOR_DELAY_UI1. 开发传感器应用1) 加速度传感器:返回三个方向上的加速度 ,单位m/s21) 方向传感器:返回3个角度:手机顶部和正北的夹角手机顶部或尾部翘起的角度 手机侧面翘起的角度2) 磁场传感器:返回三个数据x,y,z三个方向上的磁场分量。单位 :uT3) 温度传感器:单位:摄氏度4) 光传感器:单位 勒克斯5)压力传感器:1.1 加速传感器
3、P548, AccelerometerText1.1 加速传感器 P548, AccelerometerTextpublic class AccelerometerTest extends Activityimplements SensorEventListener/ 定义系统的Sensor管理器SensorManager sensorManager;EditText etTxt1;Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.
4、layout.main);/ 获取程序界面上的文本框组件etTxt1 = (EditText) findViewById(R.id.txt1);/ 获取系统的传感器管理服务sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);Overrideprotected void onResume()super.onResume();/ 为系统的加速度传感器注册监听器sensorManager.registerListener(this,sensorManager.getDefaultSensor(Sensor.
5、TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_GAME);Overrideprotected void onStop()/ 取消注册sensorManager.unregisterListener(this);super.onStop();/ 以下是实现SensorEventListener接口必须实现的方法/ 当传感器的值发生改变时回调该方法Overridepublic void onSensorChanged(SensorEvent event) float values = event.values;StringBuilder sb = n
6、ew StringBuilder();sb.append(“X方向上的加速度:”); / 单位: m/s2sb.append(values0);sb.append(nY方向上的加速度:);sb.append(values1);sb.append(nZ方向上的加速度:);sb.append(values2);etTxt1.setText(sb.toString();/ 当传感器精度改变时回调该方法。Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) 1.2 各种传感器实例 P555,SensorSimulator要
7、去掉 .classpath文件中的:public class SensorSimulatorTest extends Activityimplements SensorEventListener private SensorManager mSensorManager;EditText etOrientation; EditText etMagnetic;EditText etTemerature;EditText etLight;EditText etPressure;Overridepublic void onCreate(Bundle savedInstanceState)super.o
8、nCreate(savedInstanceState);setContentView(R.layout.main);/ 获取界面上的EditText组件etOrientation = (EditText) findViewById(R.id.etOrientation);etMagnetic = (EditText) findViewById(R.id.etMagnetic);etTemerature = (EditText) findViewById(R.id.etTemerature);etLight = (EditText) findViewById(R.id.etLight);etPr
9、essure = (EditText) findViewById(R.id.etPressure); mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);Overrideprotected void onResume()super.onResume();/ 为系统的方向传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DEL
10、AY_GAME);/ 为系统的磁场传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),SensorManager.SENSOR_DELAY_GAME);/ 为系统的温度传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE),SensorManager.SENSOR_DELAY_GAME);/
11、为系统的光传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_GAME);/ 为系统的压力传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE),SensorManager.SENSOR_DELAY_GAME);Overrideprotected void onS
12、top()/ 程序退出时取消注册传感器监听器mSensorManager.unregisterListener(this);super.onStop();Overrideprotected void onPause()/ 程序暂停时取消注册传感器监听器mSensorManager.unregisterListener(this);super.onPause();/ 以下是实现SensorEventListener接口必须实现的方法Override/ 当传感器精度改变时回调该方法。public void onAccuracyChanged(Sensor sensor, int accuracy)
13、 Overridepublic void onSensorChanged(SensorEvent event) float values = event.values;/ / 真机上获取触发event的传感器类型 int sensorType = event.sensor.getType();StringBuilder sb = null;/ 判断是哪个传感器发生改变switch (sensorType) / 方向传感器case Sensor.TYPE_ORIENTATION:sb = new StringBuilder();sb.append(绕Z轴转过的角度:);sb.append(val
14、ues0);sb.append(n绕X轴转过的角度:);sb.append(values1);sb.append(n绕Y轴转过的角度:);sb.append(values2);etOrientation.setText(sb.toString();break;/ 磁场传感器case Sensor.TYPE_MAGNETIC_FIELD:sb = new StringBuilder();sb.append(X方向上的角度:);sb.append(values0);sb.append(nY方向上的角度:);sb.append(values1);sb.append(nZ方向上的角度:);sb.app
15、end(values2);etMagnetic.setText(sb.toString();break;/ 温度传感器case Sensor.TYPE_TEMPERATURE:sb = new StringBuilder();sb.append(当前温度为:);sb.append(values0);etTemerature.setText(sb.toString();break;/ 光传感器case Sensor.TYPE_LIGHT:sb = new StringBuilder();sb.append(当前光的强度为:);sb.append(values0);etLight.setText(
16、sb.toString();break;/ 压力传感器case Sensor.TYPE_PRESSURE:sb = new StringBuilder();sb.append(当前压力为:);sb.append(values0);etPressure.setText(sb.toString();break;1.3 指南针 P558 Compasspublic class Compass extends Activityimplements SensorEventListener/ 定义显示指南针的图片ImageView znzImage;/ 记录指南针图片转过的角度float currentD
17、egree = 0f; / 定义真机的Sensor管理器SensorManager mSensorManager;Overridepublic void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);/ 获取界面中显示指南针的图片znzImage = (ImageView) findViewById(R.id.znzImage); / 获取真机的传感器管理服务 mSensorManager = (SensorManager)getSystem
18、Service(SENSOR_SERVICE);/ 获取传感器模拟器的传感器管理服务/mSensorManager = SensorManagerSimulator.getSystemService(this,/SENSOR_SERVICE);/ 连接传感器模拟器/mSensorManager.connectSimulator();Overrideprotected void onResume()super.onResume();/ 为系统的方向传感器注册监听器mSensorManager.registerListener(this,mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_GAME);Overrideprotected void onPause()/ 取消注册mSensorManager.unregisterListener(this);super.onP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 22073-1:2024 EN Gas welding equipment - Part 1: Line pressure regulators and line pressure regulators with flow-metering devices for gas distribution pipelines up to 6 M
- 企业中秋节的慰问信范文(7篇)
- 主持人的心得体会
- DB12T 606.1-2015 农村地区邮政与快递服务规范 第1部分:邮政
- 中秋晚会董事长精彩致辞范文(15篇)
- 端午节周记范文合集4篇
- 高等数学(管)-教学大纲
- 影响疫苗免疫效果的几点因素
- 影响孩子一生的早期教育
- 糖果王国课件教学课件
- 《中级微观经济学》考试复习题库(附答案)
- 三年级 上册科学 课件-2.4 哺乳动物 |湘教版(一起)(共23张PPT)
- 建设工程总投资组成表
- 箱变施工方案
- 心系中国梦儿童竞选少先队大队长PPT飘扬红领巾光荣少先队PPT课件(带内容)
- 专题05 家国情怀 中考历史学科核心素养专题解读课件(2022版新课标)
- 医院护理品管圈成果汇报缩短脑卒中静脉溶栓患者DNT完整版本PPT易修改
- 幼儿园教学课件中班美术《百变的花瓶》课件
- 液化石油气充装操作规程(YSP118液化石油气钢瓶)
- 工程样板过程验收单
- 颅内动脉动脉瘤介入治疗临床路径
评论
0/150
提交评论