如何使用适用于API 21的camera2类并使应用程序仍然针对较低的API运行?

时间:2018-01-06 09:59:13

标签: java android build.gradle android-camera2

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

我是否应该将最低SDK版本添加到API 21中,并为具有较低版本的用户创建if else语句?或者还有另一种方式吗?

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

1 个答案:

答案 0 :(得分:1)

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

由于你的min API是> 4,您只需在NLS_LANG=AMERICAN_AMERICA.UTF8 export NLS_LANG 下的块中使用新的 camera2 API即可。这是Android的常见惯例,虽然某些软件纯粹主义者会坚持对if (Build.VERSION.SDK_INT >= 21)类的存在进行运行时检查。

您应该隔离使用已弃用的 Camera API的代码,并使用注释android.hardware.camera2.CameraManager@TargetApi(16)标记这些方法。