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勒克斯。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 平安证券账号忘了怎么办 发现发票是假的怎么办 公司收到假发票入账了怎么办 手表皮带有汗味怎么办 利客来购物卡丢了怎么办 乐天玛特倒闭卡怎么办 lv皮带买长了怎么办 密袋鼠咬了人怎么办 lv皮带如果长了怎么办 天赐农场公众号进不去了怎么办 苹果删了订阅号怎么办 蚂蚁借呗没有自动扣款怎么办 有对方qq号名字怎么办 腾讯模拟器刺激现场注册上限怎么办 丹阳智慧人社登入密码忘了怎么办? ipad系统被锁了怎么办 电脑管理员账号删了怎么办 自己电脑删文件需要管理员怎么办 苹果电脑管理员密码忘记了怎么办 电脑提示安全设置不允许下载怎么办 微信和ipad同步怎么办 苹果6空间已满怎么办 苹果6内存虚满怎么办 监控主机密码忘了怎么办 加购物车不下单怎么办 绑定qq账号消息不见了怎么办 现在的注册微信怎么办 爱奇艺手机号码被别人绑定了怎么办 手机号码换了支付宝账号怎么办 qq换手机号了怎么办呢 公司被注销了公众号怎么办 qq号被限制查找怎么办 qq号别人查找不到怎么办 qq邮箱已被注册怎么办 微信付款没网络怎么办 天猫买的假货店铺关门了怎么办 鞋小了半码怎么办 迅雷会员种子不能加速怎么办 迅雷会员为什么不能加速怎么办 持有st创智股票怎么办 租的房子床坏了怎么办