开关相机分为以下几个步骤:申请授权-->选择相机-->打开相机-->关闭相机
1申请授权
在使用相机 API 之前,必须在 AndroidManifest.xml 注册相机权限 android.permission.CAMERA。
<uses-permission android:name="android.permission.CAMERA" />
需要注意的是 6.0 以上的系统需要我们在程序运行的时候进行动态权限申请,所以我们需要在程序启动的时候去检查权限,有任何一个必要的权限被用户拒绝时,我们就弹窗提示用户程序因为权限被拒绝而无法正常工作
(1) 先询问是否有权限,如果已经授权那么可以进行相机操作
private boolean hasPermission() {
//判断SDK的版本是否是23以上
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//检查是否已经授权
return checkSelfPermission(PERMISSION_CAMERA) == PackageManager.PERMISSION_GRANTED;
} else {
return true;
}
}
(2) 如果没有授权则需要动态申请授权
private void requestPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (shouldShowRequestPermissionRationale(PERMISSION_CAMERA)) {
Toast.makeText(
CameraActivity.this,
"Camera permission is required for this demo",
Toast.LENGTH_LONG)
.show();
}
requestPermissions(new String[] {PERMISSION_CAMERA}, PERMISSIONS_REQUEST);
}
}
2 配置特性
你一定不希望用户在一台没有任何相机的手机上安装你的相机应用程序吧,因为那样做是没有意义的。所以接下来要做的就是在 AndroidManifest.xml 中配置一些程序运行时必要的相机特性,如果这些特性不支持,那么用户在安装 apk 的时候就会因为条件不符合而无法安装。
我们通过 <uses-feature> 标签声明了我们的应用程序必须在具有相机的手机上才能运行。下面两个分别是支持相机和支持自动对焦。
更多的特性可以在