【发布时间】:2016-06-26 14:13:05
【问题描述】:
我有一个非常大的问题(
我正在使用 Camera2API,并使用标准的 Google 示例。
神秘的是当我使用这种方法时
private void openCamera(int width, int height) {
setUpCameraOutputs(width, height);
configureTransform(width, height);
CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
try {
if (!mCameraOpenCloseLock.tryAcquire(2500, TimeUnit.MILLISECONDS)) {
throw new RuntimeException("Time out waiting to lock camera opening.");
}
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler);
} catch (CameraAccessException e) {
e.printStackTrace();
} catch (InterruptedException e) {
throw new RuntimeException("Interrupted while trying to lock camera opening.", e);
}
}
我用Samsung S6 android 6.0
我希望该方法 manager.openCamera(mCameraId, mStateCallback, mBackgroundHandler); - 将打开相机,但不是这个,代码停止在
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED) {
return;
}
据我了解,意思是我的manifest不包含权限,但是我查了一下,有相应的权限
<uses-permission android:name="android.permission.CAMERA" />
什么意思?
我有这个权限,为什么不通过检查?
我尝试在Meizu MX5 android 5.1 上启动这个应用程序,它会打开相机,一切正常...
也许问题出在安卓版本上?
我做错了什么?如何查看?
【问题讨论】:
-
如果你的目标 Api 是 23,你有检查运行时间权限..看看这个示例github.com/googlesamples/android-RuntimePermissions
标签: java android camera android-camera android-camera-intent