版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职第二学年(航空服务)客舱服务试题及答案
- 2025年大学土地资源管理(土地经济学)试题及答案
- 2025年高职家庭教育(家庭教学方法)试题及答案
- 2025年中职第一学年(宠物养护与经营)宠物护理试题及答案
- 2025年大学一年级(土木工程)建筑材料试题及答案
- 2025年中职化工设备管理应用(应用技术)试题及答案
- 2025年大学雕塑(雕塑理论)试题及答案
- 2025年中职(旅游服务与管理)旅游投诉处理实务阶段测试题及答案
- 2025年高职(水利工程检测技术)水利工程质量检测试题及答案
- 2026年阜阳科技职业学院单招综合素质笔试备考题库带答案解析
- PCOS卵泡微环境的干细胞重塑策略
- 保乳术后放疗剂量分割方案优化
- 雨课堂学堂在线学堂云高等药理学 中国药科单元测试考核答案
- 2026-2031中国户外用品行业现状分析及前景预测报告
- 矛盾纠纷调解课件
- 2025至2030中国多普勒超声波流量计行业项目调研及市场前景预测评估报告
- 2025年电子商务运营成本分析可行性研究报告
- 浅析我国降低未成年人刑事责任年龄问题的研究及意义
- 基于IEC61850协议解析的变电站流量异常检测:技术、挑战与实践
- 康复治疗理疗
- 医院保洁人员院感培训
评论
0/150
提交评论