java - 如何使用API​​ 21的camera2类并使应用程序仍然运行于较低的API?

标签 java android build.gradle android-camera2

我是 android 开发的初学者,我在使用 android.hardware.camera2 时遇到问题,因为我的最低 sdk 是 API 16。所以我现在想做的是能够使用该类,但在同时我仍然可以确保使用较低 SDK 的人仍然可以使用它。

我是否应该将最低 SDK 版本放入 API 21,然后为拥有较低版本的用户创建一个 if else 语句?或者还有其他办法吗?

更新:我无法导入 android.hardware.camera,那么我将如何在 if else 语句中使用它(如果它是唯一的选项)?

最佳答案

您不需要 minSdkVersion ≥ 21 即可使用camera2 API。您甚至不需要设置targetSdkVersion。您所需要的只是 compileSdkVersion ≥ 21(在开发时使用最新的 API 是一个很好的做法)。

由于您的最小 API 大于 4,因此您只需在 if (Build.VERSION.SDK_INT >= 21) 下的 block 中使用新的 camera2 API。这是 Android 普遍接受的做法,尽管一些软件纯粹主义者会坚持运行时检查 android.hardware.camera2.CameraManager 类是否存在。

您应该隔离使用已弃用相机 API 的代码,并使用注释 @TargetApi(16)@SuppressWarnings("deprecation"标记这些方法)

关于java - 如何使用API​​ 21的camera2类并使应用程序仍然运行于较低的API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48126228/

相关文章:

java - Kotlin、Scala 和 Java 的 Gradle 构建失败

gradle - Unresolved reference :sourceSets-Gradle Kotlin DSL在另一个文件中

java - 如何检查 Apache Camel 中是否存在文件?

java - Eclipse 中 Thread.run() 的调用层次结构

java - 在树中查找子树的简单方法

android - 检索变量中的列数据时出现游标索引错误

java - Struts2 填充 <s :property> tags in JSP page 的计时

android - 在 PND(可移植导航设备)上使用 Android?

java - W/System.err : java. io.IOException:写入文件时权限被拒绝

java - buildscript 中的 gradle.properties 值