调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback
Posted
技术标签:
【中文标题】调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback【英文标题】:call requires API level 21 (current min is 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;
;
【问题讨论】:
您可以动态检查您正在运行的设备的操作系统版本,并且只有在它足够高时才使用此调用。您不能在旧设备上使用它。 【参考方案1】:严格来说,这不是解决此问题的正确方法,但您仍然可以将旧相机与新设备一起使用,只需将相机启动延迟 2-3 秒,如下所示:
final Handler handler = new Handler();
handler.postDelayed(new Runnable()
@Override
public void run()
mCamera.startPreview();
, 2000);
如果您确实必须支持 21 岁以上和 23 岁以上的设备,这在大多数情况下都可以使用。
【讨论】:
以上是关于调用需要 API 级别 21(当前最低为 17):android.hardware.camera2.CameraDevice.StateCallback的主要内容,如果未能解决你的问题,请参考以下文章
android:Theme.Material.Light 需要 API 级别 21(当前最低为 8)
如何修复 Android 中的“调用需要 API 级别 26(当前最低为 25)”错误
调用需要 API 级别 24(当前最低为 8):新的 android.location.GnssStatus.Callback
setAdapter“调用需要 API 级别 11(当前最低为 8):android.widget.AbsListView#setAdapter”?
调用需要 API 级别 23(当前最低为 14):android.app.Activity#requestPermissions,checkSelfPermission [重复]