Android 获取光线强弱,开启闪光灯,关闭闪光灯
生活随笔
收集整理的这篇文章主要介绍了
Android 获取光线强弱,开启闪光灯,关闭闪光灯
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1、获取光线强度
(1)实现传感器接口 implements SensorEventListener
实例化
private SensorManager mSensroMgr;//传感器管理类 mSensroMgr = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
(2)监听传感器
@Override protected void onPause() {super.onPause();mSensroMgr.unregisterListener(TestClass.this);//断开监听传感器 }@Override protected void onResume() {super.onResume();mSensroMgr.registerListener(this, mSensroMgr.getDefaultSensor(Sensor.TYPE_LIGHT),SensorManager.SENSOR_DELAY_NORMAL);//开启监听传感器 }(3)传感器接口实现方法
@Overridepublic void onSensorChanged(SensorEvent event) {//传感器方法1if (event.sensor.getType() == Sensor.TYPE_LIGHT) {float light_strength = event.values[0];//光线强度 // Toast.makeText(MainActivity.this,">..."+light_strength,Toast.LENGTH_SHORT).show(); // tv_light.setText(Utils.getNowDateTimeFormat() + "\n当前光线强度为" + light_strength);textView.setText("" + light_strength);if (light_strength < 50) {openFlash();} else {closeFlash();}}}@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {//传感器方法2//当传感器精度改变时回调该方法,一般无需处理}
2、1闪光灯控制方法
private CameraManager manager; private Camera camera; @SuppressLint("NewApi") private void openFlash() {//开启闪光灯try {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {manager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);if (manager != null) {manager.setTorchMode("0", true);}} else {camera = Camera.open();Camera.Parameters parameters = camera.getParameters();parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);camera.setParameters(parameters);camera.startPreview();}} catch (Exception e) {e.printStackTrace();} }@SuppressLint("NewApi") private void closeFlash() {//关闭闪光灯if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {try {if (manager == null) {return;}manager.setTorchMode("0", false);} catch (Exception e) {e.printStackTrace();}} else {if (camera == null) {return;}camera.stopPreview();camera.release();} }
2、2闪光灯控制方法
private boolean ifopen=false; @SuppressLint("NewApi") private void openFlash() {//开启闪光灯Log.i("lgq","kaisssssssssssssssss");try {Camera.Parameters p = mCamera.getParameters();p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);//持续的亮灯mCamera.setParameters(p);ifopen=true;} catch (Exception e) {e.printStackTrace();} }@SuppressLint("NewApi") private void closeFlash() {//关闭闪光灯Log.i("lgq","ggggggggggggggsssssssssssssssss");Camera.Parameters p = mCamera.getParameters();p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);mCamera.setParameters(p);ifopen=false; }
Android 设置手机屏幕亮度:https://blog.csdn.net/meixi_android/article/details/88681942
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的Android 获取光线强弱,开启闪光灯,关闭闪光灯的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: JAVA编码(41)—— 线程池队列执行
- 下一篇: Android TextView长按复制