Android 获取光线强弱,开启闪光灯,关闭闪光灯

实例化


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)传感器接口实现方法


    @Override

    public void onSensorChanged(SensorEvent event) {//传感器方法1

        if (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();

            }

        }

    }



    @Override

    public 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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值