1.activity如果要使用传感器,就必须实现SensorEventListener接口

2.得到传感器管理对象(sensormanager)

3.使用sensormanager.registerlistener 方法注册指定的传感器

4.在sensoreventlistener 接口中的onsensorchanged和onaccuracychanged方法中完成其他具体工作

public class TestActivity extends Activity {

    private SensorManager sensorManager;
//第三步:对传感器信号进行监听
private SensorEventListener listener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
//提示当前光照强度
Toast.makeText(TestActivity.this,
"当前光照强度:" + event.values[0] + "勒克斯", Toast.LENGTH_SHORT).show();
} @Override
public void onAccuracyChanged(Sensor sensor, int accuracy) { }
}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:获取 SensorManager 的实例
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//第二步:获取 Sensor 传感器类型
Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
//第四步:注册 SensorEventListener
sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);
} @Override
protected void onDestroy() {
super.onDestroy();
//传感器使用完毕,释放资源
if(sensorManager!=null){
sensorManager.unregisterListener(listener);
}
}
}

===================传感器类型=========================

加速传感器(Sensor.TYPE_ACCELEROMETER)

磁场传感器(Sensor.TYPE_MAGNETIC_FLELD)

光线传感器 (Sensor.TYPE_LIGHT )

方向传感器 (TYPE_ORIENTATION)

===================Values数值========================

 Accelerometer(加速传感器)

values[0] :沿x轴方向加速度

values[1]: 沿 y 轴方向的加速度

values[2] : 沿 z 轴方向的加速度,也就是重力加速度

Gravity(重力感应器)

values数组中的三个元素分别代表x轴,y轴,z轴的重力大小

Light(光线传感器)

values数组只有第一个元素values[0]有意义,表示光线的强度,最大值是120000.0f.

Gyroscope( 陀螺传感器)

values,分别表示x,y,z轴的旋转的角速度

Orientation(方向传感器)

values[0] : 该值表示方位,也就是手机绕着z轴旋转的角度. 0表示北(north),90表示动(east),180表示南(south),270表示西(west)

values[1]:表示倾斜度. x 轴倾斜时,该值变化,-180<= vaules[1] <= 180

values[2]: 表示沿y轴的滚动角度,-90<=values[2] <=90

在android2.3 sdk中,并不推荐使用sensor.TYPE_ORIENTATION,values[0]值,有时会出现异常。官方推荐使用SensorManager.getOrientaion的方法来获得正确的方向

===================数值更新速度========================

SENSOR_DELAY_FASTEST: 以最快的速度获得传感器数据

SENSOR_DELAY_GAME: 适合与在游戏中获得传感器数据

SENSOR_DELAY_NORMAL: 以一般的速度获得传感器数据

SENSOR_DELAY_UI:适合于在ui空间中获得数据

Android 光线传感器的调用的更多相关文章

  1. 在Android开发中调用Rest web服务(转)

    首先从维基百科上拷贝一点Rest的基本概念给大家看看,然后我们再开始详解在Android中如何调用Rest服务.表象化状态转变(英文:Representational State Transfer,简 ...

  2. Android 使用AIDL调用外部服务

    好处:多个应用程序之间建立共同的服务机制,通过AIDL在不同应用程序之间达到数据的共享和数据相互操作, 本文包括: 1 .创建AIDL 服务端.2 .创建AIDL 客户端. 3.客户端调用服务端提供的 ...

  3. Android使用KSOAP2调用WebService及正确导入jar包的问题(转)

    Android使用KSOAP2调用WebService及正确导入jar包的问题(转)     错误信息 最近在学Android使用KSOAP2调用现有的Webservice的方法,期间在网上找了很多代 ...

  4. [置顶] android利用jni调用第三方库——第三篇——编写库android程序整合第三方库libhello.so到自己的库libhelloword.so

    0:前言: 在第二篇中,我们主要介绍了丙方android公司利用乙方C++公司给的动态库,直接调用库中的方法,但是这样方式受限于: 乙方C++公司开发的动态库是否符合jni的规范,如果不规范,则不能直 ...

  5. [置顶] android利用jni调用第三方库——第二篇——编写库android程序直接调用第三方库libhello.so

    0:前言 1:本文主要作为丙方android公司的身份来写 2:作者有不对的地方,请指出,谢谢 [第一篇:android利用jni调用第三方库——编写库libhello.so] [第二篇:androi ...

  6. Android使用ksoap2调用C#中的webservice实现图像上传

    目录: 一. android使用ksoap2调用webservice 二. 异步调用 三. Android使用ksoap2调用C#中的webservice实现图像上传参考方法 四. 图像传输中Base ...

  7. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  8. 在Android Studio中调用so中的方法

    本节用的so是上节用Android Studio创建的so.想在Android Studio中调用so中的方法,需要先引用so.Android Studio中引用so的方法有二种,下面开始介绍. 一 ...

  9. android js 互相调用

    代码地址如下:http://www.demodashi.com/demo/13107.html android js 互相调用 第二版 支持js匿名函数接收 支持js json对象接收 支持js函数返 ...

随机推荐

  1. Spring源码分析——资源访问利器Resource之接口和抽象类分析

    从今天开始,一步步走上源码分析的路.刚开始肯定要从简单着手.我们先从Java发展史上最强大的框架——Spring...旗下的资源抽象接口Resource开始吧. 我看了好多分析Spring源码的,每每 ...

  2. 点击按钮后到底发生了什么,Touch,LongClick或者Click?

    按钮点击事件详解 最近一个项目需要给应用初始界面上的动态按钮添加在不同状态的变换效果,如点击(俗一点也可称为按压)后实现背景图的更换或者图标的缩放等效果.由于按钮点击的时间有长有短,所以采用OnTou ...

  3. js的this和面向对象编程

    很奇怪的是很多书或资料没有把这个事情讲清楚. 关键就是在于没有一个整体的思维技术模式,问题被隔离了所以反而不容易理解. 我们先看this,这是js的关键字,指示函数的上下文对象. 这里问题就来了,比如 ...

  4. [webpack] webpack-dev-server介绍及配置

    webpack-dev-server是webpack官方提供的一个小型Express服务器.使用它可以为webpack打包生成的资源文件提供web服务.webpack-dev-server官方文档 w ...

  5. MacTalk阅读有感

    MacTalk by 池建强 高手的思维境界 -贴地气 -有思想 技术普及 文字是表达人思想的载体,池老师将自己的经历,经验分享给大家,很值得大家学习,虽然我只是个初出茅庐的小菜,现在有指路明灯一样. ...

  6. UIView的setNeedsDisplay和setNeedsLayout

    1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步执行的.而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UI ...

  7. windows下 nvm下载node被墙了解决办法

    不需要这么麻烦的,在1.1.1版本中,确实没有实现命令行设置.这点你分析的很对,但是从配置文件中读取镜像地址已经完成,所以直接在settings.txt中手工设置一下就好了,无需编译.以下是我的文件位 ...

  8. unsigned无符号、有符号类型的符号拓展

    先看一段代码 #include <stdio.h> main(){ unsigned ; char b = a; printf("%d %d",a,b); ; } a输 ...

  9. C# 访问数据库

    1. 首先引用和生命system.data.sqlClient 2. 使用sqlconnect类链接,sqlcommand类执行SQL命令,最后结果返回给sqlDataReader类或者是其他类 3. ...

  10. Java递归算法——三角数字(消除递归)

    import java.io.*; // for I/O //类名:Params //属性: //方法: class Params //这个类的对象被压入栈中 { public int n; //用来 ...