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

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 传感器 光照传感的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值