Java 如何在API 21中使用camera2类,并使应用程序在较低的API中仍然运行?
我是android开发的初学者,我在使用android.hardware.camera2时遇到了问题,因为我的最低sdk是API 16。所以我现在想做的是能够使用这个类,但同时我仍然可以确保使用LowerSDK的人仍然可以使用它 我是否应该将最低SDK版本设置为API21,并为版本较低的用户创建一个if-else语句?还是有别的办法Java 如何在API 21中使用camera2类,并使应用程序在较低的API中仍然运行?,java,android,build.gradle,android-camera2,Java,Android,Build.gradle,Android Camera2,我是android开发的初学者,我在使用android.hardware.camera2时遇到了问题,因为我的最低sdk是API 16。所以我现在想做的是能够使用这个类,但同时我仍然可以确保使用LowerSDK的人仍然可以使用它 我是否应该将最低SDK版本设置为API21,并为版本较低的用户创建一个if-else语句?还是有别的办法 更新:我无法导入android.hardware.camera,那么我将如何在if-else语句中使用它(如果它是唯一选项)?您不需要minSdkVersion≥
更新:我无法导入android.hardware.camera,那么我将如何在if-else语句中使用它(如果它是唯一选项)?您不需要minSdkVersion≥ 21使用camera2 API。您甚至不需要设置targetSdkVersion。您只需要编译dkversion即可≥ 21(最好在开发时使用最新的API) 由于最小API大于4,如果(Build.VERSION.SDK\u INT>=21),则可以在
下的块中使用新的camera2API。这是Android的常见做法,尽管一些软件纯粹主义者会坚持运行时检查是否存在Android.hardware.camera2.CameraManager
类
您应该隔离使用不推荐使用的摄影机API的代码,并使用注释标记这些方法@TargetApi(16)
或@SuppressWarnings(“不推荐”)
我建议使用如果(Build.VERSION.SDK\u INT>您的需求)
。可能更好。如果最低版本是21,它还能工作吗?实际上你想做什么?想要使用camera?@Erika和您检查当前版本时使用的if语句(将您的要求
替换为21,并将其设置为=
)您检查的版本(在本例中为21)。如果大于等于21,则使用camera2。否则,使用相机。只要没有需要更高版本的库,或者没有需要更高版本的功能(例如,如果您想使用OpenGL ES 3而不支持2,可以将minSDK设置为18),就可以设置您想要的任何minSDK版本。是的,我想使用相机