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 ...
随机推荐
- yaf学习
<?php 安装 phpize ./configure --with-php-config=/usr/local/php/bin/php-config 路由类 final Yaf_Router ...
- [转]android中OnTouch和OnClick、 imagebutton的src和background有什么区别
1.OnTouch和OnClick有何区别? 专业回答 1.onClick就传入一个View对象,而 onTouch要传入一个View 对象和 MotionEvent的对象2.onTouch对控件 ...
- Codeforces Beta Round #10 C. Digital Root 数学
C. Digital Root 题目连接: http://www.codeforces.com/contest/10/problem/C Description Not long ago Billy ...
- textbox约束输入值问题解答
网上很多关于文本框只能输入数字的,今天又找了一遍,发现以前的写法居然有点问题! onkeypress="if (event.keyCode<48 || event.keyCode> ...
- apache&mod_wsgi&django部署多个项目
今天做好了第二个django项目,但在部署时出了一点小问题,在此记录一下. 1.mod_wsgi 3.4已经支持了部署多个项目,只需在httpd.conf中进行如下配置: WSGIScriptAlia ...
- switch语句的基本使用
switch是一个多分支的选择语句. 1.基本格式: switch(整型表达式){ case 整型字面量: ...... default : } 解释: 1)整型字面量可 ...
- Swift基础类型
1.使用 let 来声明常量,使用 var 来声明变量. 注:你能够在一行中声明多个常量或者多个变量.用逗号隔开. 2.类型标注 假设初始值没有提供足够的信息(或者没有初始值),那你须要在变量后面声明 ...
- [Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面
引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文 ...
- appium+python自动化57-chromedriver与chrome版本
前言 由于app的webview自动化是依赖于chromedriver的,并且每个app的webview版本号都不太一样,这就导致了,每次都需要重新去下载对应的chromedriver版本.如何根据当 ...
- lua string介绍
1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...