我是 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/