Android传感器开发
2013-07-02
Android 中传感器的种类
加速度,Sensor.TYPE_ACCELEROMETER
陀螺仪,Sensor.TYPE_GYROSCOPE
亮度,Sensor.TYPE_LIGHT
地磁,Sensor.TYPE_MAGNETIC_FIELD
方向,Sensor.TYPE_ORIENTATION
压力,Sensor.TYPE_PRESSURE
近程,Sensor.TYPE_PROXIMITY
温度,Sensor.TYPE_TEMPERATURE
Android 中传感器的功能
SensorManager 是所有传感器的一个综合管理类,包括了传感器的种类、采样率、精准度等。
// 得到一个SensorManager对象
SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// 得到传感器列表
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
// 注册传感器
boolean result = mSensorManager.registerListener(this, sensors, SensorManager.SENSOR_DELAY_FASTEST);
// 卸载传感器
mSensorManager.unregisterListener(this);
// SensorEventListener有两个接口方法
// 在传感器值更改时调用
onSensorChanged(SensorEvent event);
// SensorEvent 对象包括一组浮点数
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
// 在传感器的精准度发生改变时调用
// 参数accuracy表示传感器新的准确值
onAccuracyChanged(Sensor sensor, int accuracy);
示例:
public class SensorActivity extends Activity implements SensorEventListener {
private boolean mRegisteredSensor;
private SensorManager mSensorManager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mRegisteredSensor = false;
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}
protected void onResume() {
super.onResume();
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
if(sensors.size() > 0) {
mRegisteredSensor = mSensorManager.registerListener(this, sensors.get(0), SensorManager.SENSOR_DELAY_FASTEST);
}
}
protected void onPause() {
if(mRegisteredSensor){
mSensorManager.unregisterListener(this);
mRegisteredSensor = false;
}
super.onPause();
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
}
}
}
SensorManager 常用方法
getDefaultSensor, 得到默认的传感器对象
getInclination, 得到地磁传感器倾斜角的弧度数
getOrientation, 得到设备旋转的方向
getSensorList, 得到指定传感器的列表
Android传感器开发的更多相关文章
- Android 传感器开发
如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...
- Android传感器
Android传感器 开发传感器应用 1. 获取传感器管理者对象 // 获取传感器管理者对象 SensorManager mSensorManager = (SensorManager) getSys ...
- Android学习笔记-传感器开发之利用传感器和Tween开发简易指南针
本次我们学习Android传感器的开发,前面已经介绍过了,tween的使用,所以,我们可以结合传感器与tween动画,开发简易的指南针. 首先先介绍一下传感器的相关知识, 在Android应用程序中使 ...
- android 传感器应用
本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现
- Android 传感器
今天介绍一下Android的传感器,开发Android传感器的步骤: 1.调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorMan ...
- 本人讲课时录制的Android应用开发技术教学视频
网盘地址:http://yun.baidu.com/pcloud/album/info?query_uk=1963923831&album_id=3523786484935252365 本人讲 ...
- 《android传感器高级编程》译者序
翻看手机中的应用,就能发现大多数应用都已经使用了传感器.让微信彻底火起来的“附近的人”和“摇一摇”.碰一碰交换信息的Bump.各种运动记录app.神奇的“磁力探测仪”.火爆的游戏Temple Run… ...
- Android相机开发那些坑
版权声明:本文由王梓原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/168 来源:腾云阁 https://www.qclou ...
- 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...
随机推荐
- poj 2528 Mayor's posters 线段树区间更新
Mayor's posters Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=2528 Descript ...
- Codeforces VK Cup 2015 - Qualification Round 1 D. Closest Equals 离线线段树 求区间相同数的最小距离
D. Closest Equals Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/prob ...
- python string和dict转换
字典(dict)转为字符串(string) 我们可以比较容易的将字典(dict)类型转为字符串(string)类型. 通过遍历dict中的所有元素就可以实现字典到字符串的转换: for key, va ...
- 升压转换器 (Boost)
升压转换器 (Boost) 需要将输入电压转换为较高的输出电压时,升压转换器 (Boost)是唯一的选择. 升压转换器透过内部 MOSFET 对电压充电来达成升压输出的目的,而当 MOSFET 关闭时 ...
- Low-cost ADC using only Digital I/O
http://letsmakerobots.com/node/13843 Reading A Sensor With Higher Accuracy – RC Timing Method RC Tim ...
- spring整合mybatis是如何配置事务的?
作者:郭无心链接:https://www.zhihu.com/question/30206875/answer/84675373来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- HDUJ 1392 Surround the Trees 凸包
Surround the Trees Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- SourceInsight中文字体
转载自: http://blog.chinaunix.net/uid-29094179-id-3889999.html 1.正确显示中文注释 1)Options->Style Propertie ...
- hashmap实现原理2
put和get都首先会调用hashcode方法,去查找相关的key,当有冲突时,再调用equals(这也是为什么刚开始就重温hashcode和equals的原因)! HashMap基于hashing原 ...
- appium+python自动化24-滑动方法封装(swipe)
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...