Android中的传感器之 | 您所在的位置:网站首页 › 手机光线传感器作用 › Android中的传感器之 |
说到光线传感器有的人感觉用的不多,但是手机自身带的自动调节手机亮度就是使用的光线传感器,也就是手机里的光线感应器,你的手机是否开启了这个功能呢? 小小的介绍那么光线感应器是个什么鬼呢?它是用来检测手机周围光线的强度,单位是lux,一般置于手机的头部,前置摄像头的附近,你可以看一下你的手机,拿手指挡住看看手机亮度是否会变暗,光线传感器和其他的传感器开发步骤是一样一样的(貌似都是这么一个流程) 开发过程1.得到传感器管理者对象 // 获取传感器管理者对象 SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);2.获得指定传感器对象,这里就是光线传感器啦 // 获取光线传感器对象 Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);3.添加监听器,最好写在onResume()里面 sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL);4.得到目前光线强度的值 float light = event.values[0];5 .别忘记不用的时候解除注册,不再接收传感器的更新 sensorManager.unregisterListener(this,sensor); 完整代码 public class LightActivity extends AppCompatActivity implements SensorEventListener { private SensorManager sensorManager; private Sensor sensor; private TextView mTvLight; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_light); mTvLight=findViewById(R.id.tv_light); // 获取传感器管理者对象 sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); // 获取光线传感器对象 sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); } @Override protected void onResume() { super.onResume(); //添加监听器 sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); if (sensorManager != null) { //解除注册,不再接收任何传感器的更新。 sensorManager.unregisterListener(this,sensor); } } @Override public void onSensorChanged(SensorEvent event) { float light = event.values[0]; StringBuffer buffer = new StringBuffer(); buffer.append("现在的光照强度:").append(light).append("lux"); mTvLight.setText(buffer); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }更多手机传感器使用请看Android中的传感器(总) |
CopyRight 2018-2019 实验室设备网 版权所有 |