前言:需求是收到拍照的命令后实现无感盲拍,不需要预览,不需要交互,然后保存到本地,既然不需要预览界面,那就可以直接调用系统相机,方便快捷
创建activity
布局文件
声明要用的成员变量
在要保存图片的地方创建文件夹
开始拍照
private fun takePhoto() {
val holder = surface_view.holder
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS)
holder.addCallback(object : SurfaceHolder.Callback {
override fun surfaceCreated(holder: SurfaceHolder) {
Log.e("yd", "surface created")
try {
mCamera = Camera.open(Camera.CameraInfo.CAMERA_FACING_FRONT) //打开前置摄像头
Log.e("yd", "camera open")
try {
mCamera?.setPreviewDisplay(holder)
} catch (e: Exception) {
e.printStackTrace()
}
mCamera?.startPreview()
Log.e("yd", "start preview")
mCamera?.takePicture(null, null, this@CameraNoPreviewActivity)
} catch (e: Exception) {
e.printStackTrace()
if (mCamera != null) {
mCamera?.release()
}
}
}
override fun surfaceChanged(
holder