Android光线传感器
来源:互联网 发布:数据库系统基础知识 编辑:程序博客网 时间:2024/05/17 20:29
光线传感器可以用来感知周围的光线环境变化。借助这个原理,我们可以开发一个光线探测器。
MainActivity.java代码
package com.sdutacm.sensor;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements SensorEventListener{ private SensorManager sensorManager; private Sensor sensor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSensorManager(); } @Override public void onSensorChanged(SensorEvent event) { //Sensor 发生变化时,在次通过event.values获取数据// float x = event.values[0];// float y = event.values[0];// float z = event.values[0]; float light = event.values[0]; Log.d("Light","当前的光线强度为:"+light+"勒克斯"); Toast.makeText(this,"当前的光线强度为:"+light+"勒克斯",Toast.LENGTH_SHORT).show();// if(x>20 || y>20 || z>20){// Toast.makeText(this,"欢迎使用摇一摇",Toast.LENGTH_SHORT).show();// } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } public void getSensorManager() { sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); /** * 传入的参数决定传感器的类型 * Senor.TYPE_ACCELEROMETER: 加速度传感器 * Senor.TYPE_LIGHT:光照传感器 * Senor.TYPE_GRAVITY:重力传感器 * SenorManager.getOrientation(); //方向传感器 */ sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); } @Override protected void onResume() { super.onResume(); if(sensorManager != null){ //一般在Resume方法中注册 /** * 第三个参数决定传感器信息更新速度 * SensorManager.SENSOR_DELAY_NORMAL:一般 * SENSOR_DELAY_FASTEST:最快 * SENSOR_DELAY_GAME:比较快,适合游戏 * SENSOR_DELAY_UI:慢 */ sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL); } } @Override protected void onPause() { super.onPause(); if(sensorManager != null){ //解除注册 sensorManager.unregisterListener(this,sensor); } }}
event.values返回的数组的第一个值就是光线强度值,单位是勒克斯。勒克斯是照度的国际单位(SI),又称弥烛光,1流明的光通量均匀分布在1一平方米面积上的照度就是一勒克斯,可以标作勒[克斯],简称勒,简作lx
.适宜于阅读的照度约为600勒克斯,如果你在阅读我的文章或者在编写程序,那么运行此程序,在控制台上观察周围的光线强度,看看是否适合阅读。如果是阴天,将手机放置屋外时,光照强度会瞬间变得很低,不再适合阅读和其他工作。将手机放置到抽屉时,光线强度会很快变成0勒克斯。
阅读全文
0 0
- Android之光线传感器
- Android之光线传感器
- Android之光线传感器
- Android光线传感器
- Android 光线传感器简单使用
- android 传感器使用与开发----光线传感器
- 光线传感器
- Android光线传感器获取光线强弱。LightSensorManager封装类
- Android光线传感器获取光线强弱。LightSensorManager封装类
- Android学习篇章54-光线传感器-SensorEventListener
- android 光线传感器 light sensor的使用
- Android_开发 Android传感器(加速度传感器,磁场传感器,光线传感器,方向传感器)
- 光线传感器 + 传感器指南针
- android studio 传感器之加速度,临近,光线传感器
- 手机中的传感器之光线传感器(Android实现)
- Android光线传感器-android学习之旅(65)
- 传感器的使用:光线传感器
- 光线传感器&指南针
- JVM Knowleadge-垃圾回收GC Roots Tracing
- git使用
- 字符串----句子中单词的翻转
- FTPrep, 27 Remove Element
- 推荐:Java集合详细介绍
- Android光线传感器
- 使用css样式 解决input 设置disabled="true"属性后变为灰色问题
- java 内存区域,垃圾回收
- 使用Eclipse编译运行MapReduce程序
- 《Present Your Way To The Top》
- select自定义箭头样式
- Android-把Android Studio改为Eclipse项目结构
- 使用FactoryBean接口实现自定义bean初始化
- hdu 1130 卡特兰数加大数