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)—— 线程池队列执行
- 下一篇: Manjaro安装scrt8.3 20