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 ...
随机推荐
- Ehcache缓存时间设置
timeToLiveSeconds和timeToIdleSecondstimeToLiveSeconds=x:缓存自创建日期起至失效时的间隔时间x:timeToIdleSeconds=y:缓存创建以后 ...
- Redis-用思维导图二天搞定Redis用法。
Redis整体面貌 Redis基本数据结构 1.String 1.1 数据结构 long len byte数组长度 long free 可用数组长度 char buff[] 数据内容 1.2 命令 键 ...
- CentOS 6.9/7通过yum安装指定版本的Node.js
说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等. Node.js(8.x) 一.安装和配置 1.安装Node.js ...
- switch语句的基本使用
switch是一个多分支的选择语句. 1.基本格式: switch(整型表达式){ case 整型字面量: ...... default : } 解释: 1)整型字面量可 ...
- Qt Creator的下载、安装及试用
1.试用环境及版本介绍:本文介绍的是windows桌面平台下使用Qt4.7.2和Qt Creator2.1.0,其他操作系统和版本在阅读时请留意. 2.下载: 从http://get.qt.nokia ...
- python接口自动化7-参数关联
前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...
- 【java web】java运行预编译Groovy脚本
在JVM中执行Groovy类有两种方式: 使用Groovy编译全部的*.groovy为java的*.class文件,把这些*.class文件放在java类路径中,通过java类载入器来载入这些类. 通 ...
- 数学图形(1.35)Kappa curve
不知道这个曲线和那个运动品牌背靠背有什么关系.阿迪原先的商标是个三叶草,难道背靠背也是由数学图形来的? 以下是维基上的解释. In geometry, the kappa curve or Gutsc ...
- javascript实现浏览器窗口传递参数
a.html <html> <head> <title>主页面</title> <script language="javascript ...
- C# ?(问号)的三个用处
public DateTime? StatusDateTime = null; 脑子便也出现个问号,这是什么意思呢?网上搜下,总结如下: 1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不 ...