【问题标题】:call requires API level 21 (current min is 17): android.hardware.camera2.CameraDevice.StateCallback调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback
【发布时间】:2017-02-23 23:41:36
【问题描述】:

Android Studio 中的错误。 我有 android 4.4.2 的智能手机,我无法安装更新的。 我该怎么办?

private CameraDevice.StateCallback mCameraDeviceStateCallback = new CameraDevice.StateCallback(){
    @Override
    public void onOpened(CameraDevice camera){
        mCameraDevice = camera;
    }
    @Override
    public void onDisconnected(CameraDevice camera){
        camera.close();
        mCameraDevice = null;
    }
    @Override
    public void onError(CameraDevice camera, int error){
        camera.close();
        mCameraDevice = null;
    }
};

【问题讨论】:

  • 您可以动态检查您正在运行的设备的操作系统版本,并且只有在它足够高时才使用此调用。您不能在旧设备上使用它。

标签: android require android-api-levels


【解决方案1】:

严格来说,这不是解决此问题的正确方法,但您仍然可以将旧相机与新设备一起使用,只需将相机启动延迟 2-3 秒,如下所示:

final Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    mCamera.startPreview();
                }
            }, 2000);

如果您确实必须支持 21 岁以上和 23 岁以上的设备,这在大多数情况下都可以使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多