资讯详情

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 传感器 整理光传感数据,继续补充相关数据,感谢您对本网站的支持!

标签: 光感传感器zp一12g

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台