Android开发_传感器
Android中的传感器类型
1.TYPE_ACCELEROMETER:加速度传感器,单位是m/s²,测量应用于设备X、Y、Z轴上的加速度,又叫做G-sensor
2.TYPE_AMBIENT_TEMPERATURE:温度传感器,单位是℃,测量返回当前的温度。
3.TYPE_GRAVITY:重力传感器,单位是m/s²,测量应用于设备X、Y、Z轴上的重力,也叫GV-sensor,地球上的数值是9.8m/s²。
4.TYPE_GYROSCOPE:陀螺仪传感器,单位是rad/s,测量设备x、y、z三轴的角加速度数据。
5.TYPE_LIGHT:光线感应传感器,单位lx,检测周围的光线强度,手机系统中主要是调节LCD亮度。
6.TYPE_LINEAR_ACCELERATION:线性加速度传感器,单位是m/s²,该传感器是获取加速度传感器去除重力的影响得到的数据。
7.TYPE_MAGNETIC_FIELD:磁力传感器,单位是uT(微特斯拉),测量设备周围三个物理轴(x,y,z)的磁场
8.TYPE_ORIENTATION:方向传感器,测量设备围绕三个物理轴(x,y,z)的旋转角度,API显示使用 SensorManager.getOrientation()替代掉了。
9.TYPE_PRESSURE:压力传感器,单位是hPa(百帕斯卡),返回当前环境下的压强。
10.TYPE_PROXIMITY:距离传感器,单位是cm,用来测量某个对象到屏幕的距离,可用于打电话时判断人耳到电话屏幕距离来进行关闭屏幕的省电功能。
11.TYPE_RELATIVE_HUMIDITY:湿度传感器,单位是%,来测量周围环境的相对湿度。
12.TYPE_ROTATION_VECTOR:旋转矢量传感器,旋转矢量代表设备的方向,是一个将坐标轴和角度混合计算得到的数据。
13.TYPE_TEMPERATURE:温度传感器,新版本中被TYPE_AMBIENT_TEMPERATURE替换掉了。
Android传感器相关类(位于android.hardware包)
Sensor: 表示传感器的类,它保存有传感器名称,厂商,版本,精确度等信息;
SensorEvent:表示传感器事件,它可以保存传感器的值,传感器类型,时间戳等信息;
SensorEventListener:用于接收传感器来自SensorManager的通知,当传感器发生变化时,它包含两个回调函数。
SensorManager:SensorManager让你可以访问设备(手机)的全部传感器。
SensorListener:已废除,不再介绍。
Android的SensorEvent API定义的坐标系统是:X轴水平向右,Y轴垂直向上,Z轴沿屏幕向外。
列出所有的传感器
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL);for (Sensor s : sensors) {System.out.println(s.getName());}}
}
运动传感器
public class MotionSensorAcitivty extends Activity implementsSensorEventListener {private SensorManager sm;private float[] gravity = new float[3];@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sm = (SensorManager) getSystemService(SENSOR_SERVICE);}@Overridepublic void onAccuracyChanged(Sensor s, int a) {}@Overridepublic void onSensorChanged(SensorEvent se) {switch (se.sensor.getType()) {case Sensor.TYPE_ACCELEROMETER:float x = se.values[0];float y = se.values[1];float z = se.values[2];break;case Sensor.TYPE_GRAVITY:gravity[0] = se.values[0];gravity[0] = se.values[1];gravity[0] = se.values[2];break;default:break;}}@Overrideprotected void onResume() {super.onResume();// 注册传感器sm.registerListener(this,sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_UI);sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_GRAVITY),SensorManager.SENSOR_DELAY_FASTEST);}@Overrideprotected void onPause() {super.onPause();// 注销传感器sm.unregisterListener(this);}
}
方向位置传感器
values[0]:绕Z轴旋转的角度,手机正放时,Y轴正对北方,该值为0;Y轴正对南方,该值为180;
values[1]:绕X轴旋转的角度,当Z轴正方向为Y轴正方向时,为正值,否则为负值,-180~180;
values[2]:绕Y轴旋转的角度,当Z轴正方向为X轴正方向时,为正值,否则为负值,-180~180;
Android开发_传感器相关推荐
- android 获取加速度传感器值,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...
本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...
- android开发中磁场传感器,Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】...
本文实例讲述了Android开发获取传感器数据的方法.分享给大家供大家参考,具体如下: package mobile.android.sensor; import java.util.List; im ...
- Android开发-Sensor传感器-AndroidStudio(二)小方
转载请注明出处: http://blog.csdn.net/iwanghang/article/details/53418690 我正在参加CSDN 2016博客之星评选,希望得到您的宝贵一票~ ht ...
- android开发利用传感器实现微信的摇一摇功能
现在的不少应用都用到了摇动手机改变内容的功能,比如微信中的"摇一摇"功能.前两天要实现这个功能,稍微看了一下关于传感器Sensor的内容. 传感器有几种类型: 方向传 ...
- Android开发_蓝牙基础
蓝牙开发需要的权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <u ...
- Android开发_简单的网络编程
URLConnection和HttpURLConnection使用的都是java.net中的类,属于标准的java接口. HttpURLConnection继承自URLConnection,差别在与H ...
- Android开发_如何调用系统默认浏览器访问
为什么80%的码农都做不了架构师?>>> http://www.189works.com/article-36661-1.html http://www.cnblogs.com ...
- android开发_表单上传图片及其它参数
安卓中,对图片用表单上传方式去上传到服务器,一直都是我心中的痛....开始的时候,在上传文本的http请求服务器的方式去提交,提交图片失败,后来,使用了第三方的框架去做这个事情成功了,再后来,回归到自 ...
- Android开发_获取手机屏幕的尺寸
1.设备不存在虚拟键: 第一种获取方法: public static void getScreenWidthAndHeight(Context context) {Display display = ...
最新文章
- 你的每个哈欠老板都知道!被AI摄像头全天盯紧,亚马逊快递小哥不干了
- linux之类似Windows的资源管理器gnome-system-monitor(可用这个杀死进程)
- linux 全双工 wifi热点,Linux中的同时套接字读/写(“全双工”)(特别是aio)
- 滨河新区(黄河楼)夜景
- 不玩游戏,855和730处理器在日常应用的速度差别有多大?
- sourceinsight安装记录
- 横向滑动页面,导航条滑动居中的 js 实现思路
- bmp转换为YUV420p指南
- IOS-音乐播放器(附Demo)
- 个人信息安全规范----2、个人信息安全基本原则
- Matlab读取fig文件并还原信号
- 孤岛双馈风电机组数学模型matlab,大型变速双馈风电机组动态稳定性仿真分析
- 系统管理之Systemd详解(centos7)
- Mac宝藏软件推荐(笔者也在用)(一)
- ShaderForge 之霓虹旋涡
- DXC Technology和Google Cloud宣布缔结全球合作关系,共同推动企业大规模创新
- BCG 使用之CBCGPProgressDlgCtrl进度条使用
- 【中美技术专家分享实录】微服务的挑战
- 简单的学籍管理系统c语言,c语言学生学籍管理系统—精简版.pdf
- Hibernate注解详解(超全面)
热门文章
- eclipse ganymede jetty插件
- PNG图片在IE8及其以下出现重影
- ubuntu启动失败/dev/sda1 ** :clean, **/*** files,***/*** blocks
- excel密码破解(保护工作簿)
- 果园机器人的写作思路_《24课果园机器人》 教学设计 1课时
- ubuntu下docker数据库(mysql)定时备份
- 基于归纳的知识图谱推理学习笔记整理
- android 蓝牙 遥控器,Android 蓝牙遥控器的连接
- 拟辉光管_ESP8266主控_显示效果不怎么好,数字太厚了
- 怎么下载自己家乡50年前的高清卫星图