调用需要 API 级别 21(让 camera2 在低于 21 的设备上运行?)[重复]

Posted

技术标签:

【中文标题】调用需要 API 级别 21(让 camera2 在低于 21 的设备上运行?)[重复]【英文标题】:Call requires API Level 21 (getting camera2 to run on devices lower than 21?) [duplicate] 【发布时间】:2017-07-21 14:21:11 【问题描述】:

注意到我的应用程序出现了 runtimeexceptions 和 arrayoutofboundsexception。我将问题追溯到我的代码的这个区域

 mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
    try 
        mCameraId = mCameraManager.getCameraIdList()[0];
     catch (CameraAccessException e) 
        e.printStackTrace();
    

我收到一条错误消息,提示“调用需要 API 级别 21(当前最小值为 14):android.hardware.camera2.CameraManager#getCameraIdList

解决此问题的最佳方法是什么?

screenshot

【问题讨论】:

使用camera 1。21版本以下无法使用camera2。 【参考方案1】:

在此处查看答案 - https://***.com/a/28417458/1649353。 它明确指出,如果要支持旧设备,则需要使用旧相机。试试看吧。

【讨论】:

以上是关于调用需要 API 级别 21(让 camera2 在低于 21 的设备上运行?)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

camera2(API 级别 21)是不是暴露了所有旧摄像头?

Android中Camera和Camera2的区别

使用 Camera2(Android 版本 21)API 录制 60fps 视频

调用 Camera2 API onCaptureComplete() 但相机状态仍为 CONTROL_AE_STATE_PRECAPTURE

如何在Android Studio中为消息“调用需要API级别21(当前最小值为16)”启用lint错误?

支持 Android Camera Api 和 Camera2 Api 的问题