一、引言
在安卓开发中,摄像头的使用是一个非常常见且重要的功能。无论是开发拍照应用、视频录制应用还是其他需要获取图像或视频数据的应用,都离不开对摄像头的操作。
二、权限设置
在使用安卓摄像头之前,首先需要在AndroidManifest.xml文件中添加相关的权限。
- 摄像头权限
- 如果只需要使用摄像头进行拍照或录制视频,需要添加以下权限:
<uses - permission android:name = "android.permission.CAMERA"/>
- 在Android 6.0(API级别23)及以上版本,还需要在运行时动态请求该权限。
- 存储权限(用于保存拍摄的照片或视频)
- 写入外部存储权限:
<uses - permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE"/>
- 读取外部存储权限(如果需要从存储中读取之前拍摄的内容等情况):
<uses - permission android:name = "android.permission.READ_EXTERNAL_STORAGE"/>
三、打开摄像头
-
创建Camera对象
- 在较旧的安卓版本(API 21及以下)中,可以使用以下方式打开摄像头:
import android.hardware.Camera; public class MainActivity extends AppCompatActivity { private Camera mCamera; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 打开后置摄像头,0表示后置摄像头,1表示前置摄像头 mCamera = Camera.open(0); } }
- 在API 21及以上版本,推荐使用
Camera2
API。不过,这里先以旧的Camera
API为例进行讲解。
-
处理摄像头异常
- 当设备没有摄像头或者摄像头被其他应用占用时,
Camera.open()
方法可能会抛出RuntimeException
。所以需要对其进行异常处理:
try { mCamera = Camera.open(0); } catch (RuntimeException e) { e.printStackTrace()
- 当设备没有摄像头或者摄像头被其他应用占用时,