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. Matlab中使用脚本和xml文件自动生成bus模块

    帮一个老师写的小工具 在一个大工程中需要很多bus来组织信号,而为了规范接口,需要定义很多BusObject,用Matlab语言手写这些BusObject比较费工夫 所以用xml配置文件来写,也便于更 ...

  2. EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题

    症状如图: 上图中,行号列与checkbox 列融合了.解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码: var opts = $(this).datagrid('o ...

  3. Intelij IDEA解决Dependency无法更新问题

    在使用Intelij IDEA的时候,发现核心的组件没有被更新,于是发现了这篇文章可以解决这个问题: Force Intellij IDEA to reread all maven dependenc ...

  4. App 引导界面

    App 引导界面 1.前言 最近在学习实现App的引导界面,本篇文章对设计流程及需要注意的地方做一个浅显的总结. 附上项目链接,供和我水平类似的初学者参考——http://files.cnblogs. ...

  5. 51nod 简单的动态规划

    1006 最长公共子序列Lcs 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的). ...

  6. AnimationsDemo中的ZoomActivity代码分析

    AnimationsDemo是android官网的一个动画使用示例. ZoomActivity是demo中的图像缩放动画,因为这种效果比较常见,所以研究了一下代码. 下面是效果图: 毫无疑问这是一个组 ...

  7. cosbench read异常解决办法。 Unable to verify integrity of data download. Client calculated content hash didn't match hash calculated by Amazon S3. The data may be corrupt.

    问题:cosbench read测试failed 报错如下 Cosbench v0.4.2.c4 against Ceph (Hammer) / radosgw / HAproxy's HTTP en ...

  8. win10下JDK的安装与环境变量配置

    1.到官网下载最新版本的JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装JDK,同安装其他软件一样 ...

  9. Java基础-重写System.out.println方法

    PrintStream myStream = new PrintStream(System.out) { @Override public void println(String x) { super ...

  10. (转) java定时器的几种用法

    package com.lid; import java.util.Calendar; import java.util.Date; import java.util.Timer; import ja ...