Skip to content

移动开发作业-安卓调用摄像头。支持多种调用摄像头的方式,并且使用多种方式存储拍摄获得的文件。

License

Notifications You must be signed in to change notification settings

szw0407/android_camera_test

Repository files navigation

安卓相机应用

这是一个展示多种相机和图像保存方法的Android应用示例。该应用提供了两种不同的拍照方式和三种不同的图片保存方法,适合学习Android相机操作和存储机制。

功能特点

拍照功能

  • 自定义相机界面 - 使用CameraX API自定义实现的相机预览和拍照功能,需要获取相机权限
  • 系统相机 - 调用设备上安装的系统相机应用拍照,无需单独请求权限

保存功能

  • Files API - 使用Java文件操作API将图像保存到公共目录,适用于Android 10(API 29)以下版本
  • MediaStore API - 使用MediaStore将图像保存到媒体库,适用于所有Android版本,是Android 10及以上版本推荐的方法
  • Document API - 通过系统文件选择器让用户自行决定保存位置,支持将图片保存到第三方存储应用,是非常推荐的方式

各种保存方式对比

保存方式 优点 缺点 适用版本
传统文件IO 简单直观,完全控制存储位置 需要存储权限,在新版Android上受限制 主要适用于Android 9(API 28)及以下版本,在新版本可能存在越权等问题
MediaStore API 不需要存储权限,符合新版Android隐私要求 必须保存到系统媒体库指定的位置 Android 1.5(API 3)及以上,其中Android 10(API 29)及以上推荐使用,因为不再可以使用Files API去访问共享目录
Document API (Storage Access Framework) 用户可以选择任何位置保存,包括云存储 需要用户交互,实现稍微复杂 Android 4.4(API 19)及以上,推荐在Android 10(API 29)及以上使用,因为可以避免存储权限问题

技术要点

  • 使用Jetpack Compose构建用户界面
  • CameraX API进行相机操作
  • 多种存储方式的实现和对比
  • 权限请求处理
  • 适配不同Android版本的存储访问策略

构建说明

  1. 使用Android Studio打开项目
  2. 确保已安装最新的Android SDK
  3. 使用Gradle构建项目
  4. 在模拟器或实际设备上运行应用

系统要求

  • Android 8.0 (API 26) 或更高版本
  • 设备必须有相机

About

移动开发作业-安卓调用摄像头。支持多种调用摄像头的方式,并且使用多种方式存储拍摄获得的文件。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages