这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
本文主要介绍 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);
- }
- }
对于一些程序,在改变当前程序屏幕亮度的时候,可以考虑加入光照传感器的判断。
因为大部分这些程序,会出现这样的一个问题,当(在非自动亮度调节模式)设定屏幕亮度为一个值时,再设置为自动亮度调节模式的时候是无效的。
来源: http://www.phperz.com/article/17/0918/348169.html