有一个打开手机手电筒的需求,在二维码扫描框下面加个按钮,让用户可以打开手电筒,类似摩拜这样:

想着蛮简单:直接调用系统 Api 就可以了:
可是运行程序的时候程序报错:
在网上搜索好久,没有找到什么有用的解决办法,阅读 android 系统源码也没有好的思路。
报错信息提示相机已经被占用了,自己重新看了看需求,猜想可能是二维码扫描框占用了相机.
查看二维码扫描框的代码发现它调用的是老版本的相机 Api : android.hardware.Camera
此 Api 从 android 5.0 开始被废弃了(Deprecated since API level 21)。
终于找到问题了,原来是二维码扫描框用的是老 Api,而开启手电筒使用的是新 Api:
android.hardware.camera2.CameraManager .将二维码扫描框的代码修改后,手电筒的功能就
正常了