AppOpsManager#checkOp(AppOpsManager.OPSTR_CAMERA, Process.myUid(), getPackageName())
返回AppOpsManager#MODE_ALLOWED
当尝试使用Camera.open(i)检查我得到的相机属性时,
I / CameraService:摄像机0:“软件包”的访问受到限制
显然,只有在明确限制应用程序的程序包或uId不能启动AppOpsManager#OP_CAMERA的情况下,这种情况才会发生[1]。
但是为什么会这样呢? AppOpsManager#checkOp
说AppOpsManager#MODE_ALLOWED
示例代码
for (int i = 0; i < numCameras; ++i) {
List<Size> supportedSizes = null;
List<int[]> supportedFpsRanges = null;
Camera camera = null;
try {
camera = Camera.open(i);
Parameters parameters = camera.getParameters();
supportedSizes = parameters.getSupportedPreviewSizes();
supportedFpsRanges = getFpsRangesRobust(parameters);
} catch (Exception e) {
...
} finally {
if (camera != null) {
camera.release();
}
}
答案 0 :(得分:0)
显然是设备问题。 诺基亚6 / TA-1000,Android 7.1.1
场景
可以与任何其他应用程序(包括默认的相机应用程序)重现。