Android 光传感器Light

来源:互联网 发布:约瑟夫环问题编程c 编辑:程序博客网 时间:2024/04/25 03:39
光传感器Light

       光传感器主要用来检测手机周围光的强度,与其他传感器不同的是,该传感器只读取一个数值即手机周围光的强度,且单位为勒克斯(lux)。

        光传感器的开发与之前介绍过的各种传感器的开发步骤基本相同,只是监测的是SENSOR_LIGHT,即捕捉光的强度。如果对之前的案例进行更改,使其检测光的强度,则只需要改变监听器对象及注册监听的方法即可,代码如下所示。

java代码:

  1. private SensorListener mySensorListener = new SensorListener(){
  2. @Override
  3. public void onAccuracyChanged(int sensor, int accuracy) {}
  4. //重写onAccuracyChanged方法
  5. @Override
  6. public void onSensorChanged(int sensor, float[] values) {
  7. //重写onSensorChanged方法
  8. if(sensor == SensorManager.SENSOR_LIGHT){
  9. //只检查光强度的变化
  10. myTextView1.setText("光的强度为:"+values[0]);
  11. //将光的强度显示到TextView
  12. }
  13. }
  14. };

  15. @Override
  16. protected void onResume() {
  17. //重写的onResume方法
  18. mySensorManager.registerListener(
  19. //注册监听
  20. mySensorListener,
  21. //监听器SensorListener对象
  22. SensorManager.SENSOR_LIGHT,
  23. //传感器的类型为光的强度
  24. SensorManager.SENSOR_DELAY_UI //频率
  25. );
  26. super.onResume();
  27. }
复制代码

       第6行判断是否为光强度改变事件,只对光强度改变事件进行处理,得到光强并显示到屏幕中。光传感器得到的数据只有一个,而并不像其他传感器那样得到的是X、Y、Z三个方向上的分量。

       在第15行注册监听时,传入"SensorManager.SENSOR_LIGHT"来通知系统只注册光传感器。
原创粉丝点击