文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android 传感器--光照传感器详解及使用

2022-06-06 07:36

关注

Android 设备中有许多传感器,其中有一个传感器控制着你屏幕亮度的变化。当你在很暗的地方使用手机,你设备的屏幕会自动调暗,从而保护你眼睛。

起着这样作用,Android是通过一款光照传感器来获取你周围环境亮度的变化。光照传感器一般在手机的顶部的位置。

要在程序中使用这款传感器

(1)首先要获取SensorManager传感器管理器服务:SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);

(2)获取光照传感器:Sensor liaghtSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)//Sensor.TYPE_LIGHT 代表光照传感器

(3)注册和监视光照传感器:


sensorManager.registerListener(new SensorEventListener() {
 @Override
 public void onSensorChanged(SensorEvent event) {
//监视传感器的改变
//accuracy 传感器的精度 通过event.accuracy获取
//values 传感器传回的数值 如event.values[0] 获取光线强度lux
//timestamp 传感器事件发生的时间(以纳秒为单位)
}
 @Override
 public void onAccuracyChanged(Sensor sensor, int accuracy) {
//对传感器精度的改变做出反应
}
 }, sensor, SensorManager.SENSOR_DELAY_NORMAL);

一个简单的获取光照传感器光线强度lux的代码:


public class MainActivity extends Activity {
  private TextView value_tv;
  private SensorManager sensorMamager;
  private Sensor sensor;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    value_tv=(TextView) findViewById(R.id.value_tv);
    //获取SensorManager对象
    sensorMamager=(SensorManager) getSystemService(SENSOR_SERVICE);
    //获取Sensor对象
    sensor=sensorMamager.getDefaultSensor(Sensor.TYPE_LIGHT);
    sensorMamager.registerListener(new SensorEventListener() {
      @Override
      public void onSensorChanged(SensorEvent event) {
         //获取精度 
        float acc = event.accuracy; 
        //获取光线强度 
        float lux = event.values[0];  
        value_tv.setText("acc:"+acc+";"+"lux:"+lux);
      }
      @Override
      public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO 自动生成的方法存根
      }
    }, sensor, SensorManager.SENSOR_DELAY_NORMAL);
  }
} 

对于一些程序,在改变当前程序屏幕亮度的时候,可以考虑加入光照传感器的判断。

因为大部分这些程序,会出现这样的一个问题,当(在非自动亮度调节模式)设定屏幕亮度为一个值时,再设置为自动亮度调节模式的时候是无效的。

 以上就是对Android 传感器 光照传感的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

您可能感兴趣的文章:android 传感器(OnSensorChanged)使用介绍Android利用方向传感器获得手机的相对角度实例说明Android利用Sensor(传感器)实现指南针小功能Android重力传感器实现滚动的弹球Android操作系统介绍之11种传感器Android利用Sensor(传感器)实现水平仪功能Android编程实现获取所有传感器数据的方法Android利用传感器实现微信摇一摇功能Android 重力传感器在游戏开发中的应用Android 获取传感器列表整理及简单实例Android利用传感器仿微信摇一摇功能Android开发获取传感器数据的方法示例【加速度传感器,磁场传感器,光线传感器,方向传感器】


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯