
<!-- 打开照相机权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 打开闪光灯权限 -->
<uses-permission android:name="android.permission.FLASHLIGHT" />
开手电筒java代码:
Camera camera = Camera.open()
Camera.Parameters myParameters = camera.getParameters()
myParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH)
camera.setParameters(myParameters)
关手电筒java代码:
Camera camera = Camera.open()
Camera.Parameters myParameters = camera.getParameters()
myParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF)
camera.setParameters(myParameters)
报警声,游如就是播放音乐就行了,文件篇幅有限,不能一一解释,可追问。
1.控制手电筒开关的工具类:
public class FlashUtils {
private CameraManager manager
private Camera mCamera = null
private Context context
private boolean status = false//记录手电筒状态
笑雹 FlashUtils(Context context){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE)
}
this.context = context
}
//打开手电筒
public void open() {
if(status){//如果已经是打开状态,不需要打开
return
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
manager.setTorchMode("0", true)
} catch (Exception e) {
e.printStackTrace()
}
} else {
PackageManager packageManager = context.getPackageManager()
FeatureInfo[] features = packageManager.getSystemAvailableFeatures()
for (FeatureInfo featureInfo : features) {
if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) { // 判断设备是否支持闪光灯
if (null == mCamera) {
mCamera = Camera.open()
}
Camera.Parameters parameters = mCamera.getParameters()
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH)
中升粗 mCamera.setParameters(parameters)
mCamera.startPreview()
卖镇 }
}
}
status = true//记录手电筒状态为打开
}
//关闭手电筒
public void close() {
if(!status){//如果已经是关闭状态,不需要打开
return
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
try {
manager.setTorchMode("0", false)
} catch (CameraAccessException e) {
e.printStackTrace()
}
} else {
if (mCamera != null) {
mCamera.stopPreview()
mCamera.release()
mCamera = null
}
}
status = false//记录手电筒状态为关闭
}
//改变手电筒状态
public void converse(){
if(status){
close()
}else{
open()
}
}
}
2.使用方法:
FlashUtils utils = new FlashUtils(this)
utils.open()//打开手电筒
// utils.close()//关闭手电筒
3.示例程序已上传:
https://github.com/wkxjc/FlashlightStudy
通过小程序组件 <camera> 中的 flash 属性的控制实现后置闪光灯的打开与关闭
注意:mode="scanCode" 只有扫码模式才能准确档嫌控制闪光行烂手灯的开关
1.因防止打开子页面加载摄像头会延迟卡顿,所以暂时通过 showCamera 进入页面不立即进行加载,提升流历型畅度。
2.切换开关控制
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)