移动应用06_android传感器

上传人:j****9 文档编号:54948626 上传时间:2018-09-22 格式:PPT 页数:33 大小:3.54MB
返回 下载 相关 举报
移动应用06_android传感器_第1页
第1页 / 共33页
移动应用06_android传感器_第2页
第2页 / 共33页
移动应用06_android传感器_第3页
第3页 / 共33页
移动应用06_android传感器_第4页
第4页 / 共33页
移动应用06_android传感器_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《移动应用06_android传感器》由会员分享,可在线阅读,更多相关《移动应用06_android传感器(33页珍藏版)》请在金锄头文库上搜索。

1、Vocational Education Operation Center,Android传感器编程,Android 传感器 概述,Android传感器设备广泛 加速度传感器 距离传感器 温度传感器 方向计 iPhone Wii,传感器用法有很多种可能性,感知屏幕布局的变化 婴儿监护器 安全系统 地震图 与各种无线网络连接,Google传感器API的演化,1.5版本 主流 pre-1.5 设备不工作-如G1、oPhone 1.1 Public interface SensorEventListener.,1.5以前的API 很多的例子 尤其在互联网上 public interface Sens

2、orListener,Google传感器API使用大纲,1。得到一个传感器系统服务 2。创建一个监听器,听取传感器数据的变化 3。通过该传感器系统服务登记服务侦听 4。在监听过程中改变内部收集的传感器数据 5。完成后,从系统中注销服务侦听,pre-1.5 devices,通过Context.getSystemService()得到一个SensorManager 实例, 用SENSOR_SERVICE参数。 实施和创建和SensorLisenter实例 登记SensorManager实例的SensorListener回调: boolean registerListener(SensorListe

3、ner listener, int sensors) 在SensorListener回到方法中,处理从传感器接收到的数据: void onSensorChanged(int sensor, float values) void onAccuracyChanged(int sensor, int accuracy) 完成后,从SensorManager中注销该回调方法: void unregisterListener(SensorListener listener),新的API中 (1.5+),从Context.getSystemService()中得到一个SensorManager实例, 参数

4、是 SENSOR_SERVICE. 实施和创建和SensorLisenter实例 在SensorManager实例中注册的SensorEventListener 回调: boolean registerListener(SensorEventListener listener, Sensor sensor, int rate, Handler handler) 收到SensorEventListener传感器事件SensorEvent: void onSensorChanged(SensorEvent event) void onAccuracyChanged(Sensor sensor, i

5、nt accuracy) 从SensorEvent中,获得实际的传感器变化数据 public final float values public long timestamp public Sensor sensor 完成后,从SensorManager中注销该回调方法: void unregisterListener(SensorEventListener listener),例程代码,SensorManager sensormanager = (SensorManager) getSystemService(SENSOR_SERVICE); int sensors=sensormanage

6、r.getSensors(); public void onSensorChanged(int sensor, float values) log(“sensor: “ + sensor + “, x: “ + values0 + “, y: “ + values1 + “, z: “ + values2); .,Android 支持的传感器 Sensors,典型的Android装置有支持以下传感器: 方向 加速表 光线 磁场 临近性 温度 请注意,并非所有的设备都支持所有传感器,加速度传感器,一种能测量设备相对自由下落加速度的装置,传感器API 详解,1.5增加的 Methods Senso

7、r getDefaultSensor(int) float getInclination(float) float getOrientation(float, float) boolean getRotationMatrix(float, float, float, float) List getSensorList(int) boolean registerListener(SensorEventListener, Sensor, int) boolean registerListener(SensorEventListener, Sensor, int, Handler) boolean

8、remapCoordinateSystem(float, int, int, float) void unregisterListener(SensorEventListener) void unregisterListener(SensorEventListener, Sensor) 改变的 Methods 过时了 int getSensors() boolean registerListener(SensorListener, int) boolean registerListener(SensorListener, int, int) void unregisterListener(Se

9、nsorListener) void unregisterListener(SensorListener, int) 新加的 Classes and Interfaces GeomagneticField Sensor SensorEvent SensorEventListener,SensorManager,允许您访问该设备的传感器 通过调用Context.getSystemService获得实例 几个常用常数,API常用公共方法(1.5 以上),public Sensor getDefaultSensor(int type) public List getSensorList(int ty

10、pe) public boolean registerListener(SensorEventListener listener, Sensor sensor, int rate, Handler handler) public void unregisterListener(SensorEventListener listener),传感器-Sensor类,代表传感器 使用SensorManager.getSensorList(int)获取可用传感器名单 公共方法 public float getMaximumRange() public String getName() public fl

11、oat getPower() public float getResolution() public int getType() public String getVendor() public int getVersion(),传感器事件-SensorEvent,代表一个传感器的事件 含有数据 传感器- public Sensor sensor 时间戳 - public long timestamp 准确性 public int accuracy 传感数值-public final float values,SensorEventListener (1.5前用 SensorLisener)接

12、口,是传感器应用的主要接口 从SensorManager中接收来自传感器的改变事件 onSensorChanged(SensorEvent event) 1.5+ 【onSensorChanged(int sensor,float values) pre 1.5】 onAccuracyChanged(Sensor sensor, int accuracy) 1.5+ 【 onAccuracyChanged(int sensor,int accuracy) pre-1.5】,传感器实例,来显示加速度和方向的数值 SensorDemoNew Activity 1.5+ 版本 SensorDemoN

13、ew.java AndroidManifest 文件,模拟器的问题,SDK(2.1版)不模拟传感器 在模拟器中测试程序,你将不会从传感器得到的任何数据,解决办法 -SensorSimulator,http:/ HTC) 上运行结果,SensorDemo Activity 1.5 版本以前区别,import android.hardware.SensorListener;implements SensorListener public void onSensorChanged(int sensor, float values) public void onAccuracyChanged(int

14、sensor, int accuracy) sm.registerListener(this, ,不要混合1.5 前API和1.5 后API,新写的代码 用1.5 +的API 除非确实有必要全面覆盖所有设备时才使用1.5前的API。 两种API在常数设置上的差异 格外小心,不要混合用 Sensor.TYPE_ ACCELEROMETER - 新 API SensorManager.SENSOR_ ACCELEROMETER 旧 API,常用传感器值的含义,手机是G1/G2 Magic OS版本1.1, 1.5 和 1.6 加速度计Accelerometer x,y,z轴的正负向 z轴的变化 手

15、机画面切换,方向计Orientation Sensor,三个坐标的含义,X代表方位,这是指相对磁北级的角度,Y指间距,是到该设备是向前或向后倾斜程度,Z-卷,该设备相对于左下角的旋转角度,自动侦测手机方向自动旋转,不用传感器编程 系统已经做好了 在AndroidManifest.xml里面的ORIENTAION sensor Activity自己侦测到方向改变 getWindowManager().getDefaultDisplay().getOrientation() = 0 每次改变屏幕方向都会引发一连串的onPause, onDestory, onCreate,,模拟器中,Page 33,Thank You 谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号