Android 7 中调用系统相机的最佳实践169


在 Android 7 及更高版本中,调用系统相机有了一些重大的变化。这些变化是为了提高安全性和隐私性,但它们也可能让开发者感到困惑。在本文中,我们将介绍在 Android 7 中调用系统相机的最佳实践,并讨论与 Android 6 和更低版本的关键差异。

使用 `Camera2` API

在 Android 7 中,推荐使用 `Camera2` API 访问系统相机。`Camera2` API 是一个低级 API,它提供对相机功能的更精细控制。它还比旧的 `Camera` API 更强大、更灵活。

要使用 `Camera2` API,您需要执行以下步骤:1. 创建一个 `CameraManager` 对象。 `CameraManager` 对象用于管理相机设备和创建 `CameraDevice` 会话。
2. 获取相机设备列表。 `CameraManager` 对象可用于获取可用相机设备的列表。
3. 打开相机设备。 一旦您有了相机设备,您就可以打开它以创建 `CameraDevice` 会话。
4. 创建 `CameraCaptureSession`。 `CameraCaptureSession` 对象用于控制相机的捕获请求和输出。
5. 创建 `CaptureRequest`。 `CaptureRequest` 对象用于指定您希望相机做什么。
6. 捕获图像或视频。 一旦您创建了 `CaptureRequest`,您就可以使用 `CameraCaptureSession` 捕获图像或视频。

使用 `Intent`

如果您不需要直接控制相机,则可以使用 `Intent` 启动系统相机。这是一种更简单的方法,但它不提供与 `Camera2` API 相同的灵活性。

要使用 `Intent` 启动系统相机,您需要执行以下步骤:1. 创建 `Intent` 对象。 `Intent` 对象用于指定您希望相机做什么。
2. 设置 `Intent` 的操作。 `Intent` 的操作应设置为 `.IMAGE_CAPTURE` 或 `.VIDEO_CAPTURE`。
3. 添加附加数据到 `Intent`。(可选) 您可以在 `Intent` 中添加附加数据,例如所需图像的分辨率或视频的持续时间。
4. 启动 `Intent`。 一旦您创建了 `Intent`,您就可以使用 `startActivityForResult()` 方法启动它。

与 Android 6 及更低版本的差异

在 Android 7 中调用系统相机与 Android 6 及更低版本有一些关键差异。这些差异如下:* `Camera` API 已弃用。 `Camera` API 已在 Android 7 中弃用。不建议使用它。
* `Camera2` API 现在是首选 API。 `Camera2` API 现在是访问系统相机的首选 API。它比旧的 `Camera` API 更强大、更灵活。
* 使用 `Intent` 启动相机时需要权限。 在 Android 7 中,您需要权限才能使用 `Intent` 启动相机。这是为了提高安全性和隐私性。

最佳实践

以下是在 Android 7 中调用系统相机的最佳实践:* 使用 `Camera2` API。 `Camera2` API 是一个低级 API,它提供对相机功能的更精细控制。它还比旧的 `Camera` API 更强大、更灵活。
* 如果可能,使用 `Intent` 启动相机。 这是启动相机的更简单方法,但它不提供与 `Camera2` API 相同的灵活性。
* 在使用 `Intent` 启动相机时请求权限。 在 Android 7 中,您需要权限才能使用 `Intent` 启动相机。这是为了提高安全性和隐私性。
* 处理相机功能的可用性。 相机功能的可用性因设备而异。在使用相机功能之前,始终对其进行检查。
通过遵循这些最佳实践,您可以确保您的应用能够在 Android 7 及更高版本中可靠地访问系统相机。

2025-02-12


上一篇:Linux 系统图形化安装指南

下一篇:iOS 9:突破性移动操作系统深入解析