【发布时间】:2025-12-21 07:15:10
【问题描述】:
这是一个非常奇怪的情况。我正在使用camera2 API,并且有一种打开相机的常规方法。
manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
这个方法需要做测试,这个
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.
return;
}
通过简单的测试来推断清单中是否声明了CAMERA 权限。
<uses-permission android:name="android.permission.CAMERA" />
我的清单文件中有此权限,如果我将此应用程序上传到 Samsung S5,它可以正常工作,但如果我将此应用程序上传到中国设备,则会发生错误。不通过测试,最终不要打开相机......
也许我应该动态设置权限?
还有一件事,我已经尝试过调用方法来打开相机内部测试,这样
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.
manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
return;
}
但是犯了这个错误
致命异常:主进程:com.example.android.camera2basic,PID:29649 主题:主题:{} java.lang.SecurityException:缺乏访问 android.hardware.camera2.utils.CameraBinderDecorator.throwOnError 相机服务的权限(CameraBinderDecorator.java:108) 在 android.hardware.camera2.legacy.CameraDeviceUserShim.connectBinderShim(CameraDeviceUserShim.java:336) 在 android.hardware.camera2.CameraManager.openCameraDeviceUserAsync(CameraManager.java:327) 在 android.hardware.camera2。 CameraManager.openCamera(CameraManager.java:457) 在 com.example.android.camera2basic.activities.CameraActivity.openCamera(CameraActivity.java:919)
我做错了什么?
【问题讨论】:
标签: java android camera android-camera