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传感器开发的更多相关文章

  1. Android 传感器开发

    如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...

  2. Android传感器

    Android传感器 开发传感器应用 1. 获取传感器管理者对象 // 获取传感器管理者对象 SensorManager mSensorManager = (SensorManager) getSys ...

  3. Android学习笔记-传感器开发之利用传感器和Tween开发简易指南针

    本次我们学习Android传感器的开发,前面已经介绍过了,tween的使用,所以,我们可以结合传感器与tween动画,开发简易的指南针. 首先先介绍一下传感器的相关知识, 在Android应用程序中使 ...

  4. android 传感器应用

    本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现

  5. Android 传感器

    今天介绍一下Android的传感器,开发Android传感器的步骤: 1.调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorMan ...

  6. 本人讲课时录制的Android应用开发技术教学视频

    网盘地址:http://yun.baidu.com/pcloud/album/info?query_uk=1963923831&album_id=3523786484935252365 本人讲 ...

  7. 《android传感器高级编程》译者序

    翻看手机中的应用,就能发现大多数应用都已经使用了传感器.让微信彻底火起来的“附近的人”和“摇一摇”.碰一碰交换信息的Bump.各种运动记录app.神奇的“磁力探测仪”.火爆的游戏Temple Run… ...

  8. Android相机开发那些坑

    版权声明:本文由王梓原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/168 来源:腾云阁 https://www.qclou ...

  9. 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

    19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...

随机推荐

  1. yaf学习

    <?php 安装 phpize ./configure --with-php-config=/usr/local/php/bin/php-config 路由类 final Yaf_Router ...

  2. [转]android中OnTouch和OnClick、 imagebutton的src和background有什么区别

    1.OnTouch和OnClick有何区别?   专业回答 1.onClick就传入一个View对象,而 onTouch要传入一个View 对象和 MotionEvent的对象2.onTouch对控件 ...

  3. Codeforces Beta Round #10 C. Digital Root 数学

    C. Digital Root 题目连接: http://www.codeforces.com/contest/10/problem/C Description Not long ago Billy ...

  4. textbox约束输入值问题解答

    网上很多关于文本框只能输入数字的,今天又找了一遍,发现以前的写法居然有点问题! onkeypress="if (event.keyCode<48 || event.keyCode> ...

  5. apache&mod_wsgi&django部署多个项目

    今天做好了第二个django项目,但在部署时出了一点小问题,在此记录一下. 1.mod_wsgi 3.4已经支持了部署多个项目,只需在httpd.conf中进行如下配置: WSGIScriptAlia ...

  6. switch语句的基本使用

    switch是一个多分支的选择语句. 1.基本格式: switch(整型表达式){              case  整型字面量: ...... default  : } 解释: 1)整型字面量可 ...

  7. Swift基础类型

    1.使用 let 来声明常量,使用 var 来声明变量. 注:你能够在一行中声明多个常量或者多个变量.用逗号隔开. 2.类型标注 假设初始值没有提供足够的信息(或者没有初始值),那你须要在变量后面声明 ...

  8. [Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面

    引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文 ...

  9. appium+python自动化57-chromedriver与chrome版本

    前言 由于app的webview自动化是依赖于chromedriver的,并且每个app的webview版本号都不太一样,这就导致了,每次都需要重新去下载对应的chromedriver版本.如何根据当 ...

  10. lua string介绍

    1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(s ...