Android 传感器--光照传感器详解及使用
2019/7/7 21:24:03
本文主要是介绍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 传感器 光照传感的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!
这篇关于Android 传感器--光照传感器详解及使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-18android.permission.read_media_video
- 2024-01-18android_getaddrinfo failed eai_nodata
- 2024-01-18androidmo
- 2024-01-15Android下三种离屏渲染技术
- 2024-01-09Android 蓝牙使用
- 2024-01-06Android对接华为AI - 文本识别
- 2023-11-15代码安全之代码混淆及加固(Android)
- 2023-11-10简述Android语音播报TTS
- 2023-11-06Android WiFi工具类
- 2023-07-22Android开发未来的出路