Android打开手机的手电筒

记录一下项目中使用到的安卓手机打开手电筒的方法,比较简单。

1.打开手电筒的代码

private boolean mIsLight = false;

private Button btnOpenLight;
private Button btnCloseLight;

private Camera camera = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_open_light);

    initView();

    initListener();
}

private void initView() {
    btnOpenLight = (Button) findViewById(R.id.btn_open_light);
    btnCloseLight = (Button) findViewById(R.id.btn_close_light);
}

private void initListener() {
    btnOpenLight.setOnClickListener(this);
    btnCloseLight.setOnClickListener(this);
}
按钮的点击事:
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_open_light:
            if (!mIsLight) {
                if (camera == null) {
                    camera = Camera.open();
                }
                camera.startPreview();
                Camera.Parameters parameters = camera.getParameters();
                List<String> flashModes = parameters.getSupportedFlashModes();
                if (flashModes == null) {
                    return;
                }
                String flashMode = parameters.getFlashMode();
                if (!flashMode.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
                    parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(parameters);
                    Toast.makeText(OpenLightActivity.this, "打开手电筒成功", Toast.LENGTH_SHORT).show();
                }
                mIsLight = true;
            }
            break;
        case R.id.btn_close_light:
            if (mIsLight) {
                Camera.Parameters parameters = camera.getParameters();
                List<String> flashModes = parameters.getSupportedFlashModes();
                if (flashModes == null) {
                    return;
                }
                String flashMode = parameters.getFlashMode();
                if (!flashMode.contains(Camera.Parameters.FLASH_MODE_OFF)) {
                    parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                    camera.setParameters(parameters);
                    Toast.makeText(OpenLightActivity.this, "关闭手电筒成功", Toast.LENGTH_SHORT).show();
                }
                mIsLight = false;
            }
            break;
    }
2.添加权限:
AndroidMainfest.xml中
<uses-permission android:name="android.permission.CAMERA"/>
3.需要注意的是:
1)安卓6.0(包含6.0)以上的手机,需要用户手动赋予app打开手机手电筒的权限。
设置-->更多应用-->目标app-->权限管理-->打开对应的权限。
主要是为了用户的安全着想,安装app的时候,用户可以自定义权限是否开启。
2)动态申请权限。

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值