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. Acdream 1738 世风日下的哗啦啦族I 树套树

    世风日下的哗啦啦族I Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1738 Descri ...

  2. 微信小程序的坑

    虽然官方文档,可以在.json中给页面设置背景颜色,用backgroundColor,但是实际上并不好使,所以设置背景颜色只能在wxss中设置 <import src="../comm ...

  3. Tasker 中文版(4.6u2)

    http://www.anzhi.com/soft_1868913.html Tasker绝对称得上是Android系统的神器之一,与Auto Memory Manager不同,Tasker不是加速型 ...

  4. Python学习(六)模块 —— 包

    Python 包 包 定义 为了组织好模块,会将多个模块分为包.Python 处理包也是相当方便的.简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件. 常见的包结构如下:

  5. JQuery 动态提交form

    function exportExcel() { var merchantName = $('#merchantName').val(); var merchantNo = $('#merchantN ...

  6. 使用swig将C/C++代码转为JAVA接口(Windows平台)

    小弟一直没用过Linux. 平时的码也只是在WINDOW上用SWIG或CYGWIN进行编译. 下面的例子,先从网上找来一个.c文件. example.c /* File : example.c */ ...

  7. [Android开发常见问题-16] FragmentActivity cannot be resolve to a type

    只需要将android-support-v4.jar放到自己的libs目录下即可. 如果ADT版本比较低,则放到libs之后还需要按照下图导入这个jar包.

  8. go语言基础之普通函数的调用流程

    函数调用流程:先调用后返回,先进后出,函数递归,函数调用自己本分,利用此物点 1.普通函数的调用流程 package main //必须 import "fmt" func fun ...

  9. Django练习

    实现功能: 登录功能 添加功能 删除功能(未实现) 代码: index.html <!DOCTYPE html> <html lang="en"> < ...

  10. kubernetes基础概念

    kubernetes是基于容器技术的分布式架构领先方案.具有完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建智能负载均衡器.强大的故障发现和自 ...