我正在使用ZXing的条形码扫描程序库。 它适用于我的所有测试设备,除了 运行Android 6的Nexus 5。 开始活动时,它只提供黑屏,而且全部都是。 所以我想,好吧,也许有一些兼容性问题 我下载了ZXing发布的官方条码应用程序。 但它在Nexus 5上运行良好。
所以实际上我有点恼火,我可能做错了......
在Android Monitor中,我收到消息:
android连接到相机0时发生错误
我已经搜索过该状态消息但未找到对我有用的任何内容。
有没有人建议如何解决这个问题? 或者提示如何识别问题的原因?
答案 0 :(得分:0)
Android 6不接受Manifest文件的权限 你应该在运行时请求许可。 像这样的事情:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
getActivity().checkSelfPermission(Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.CAMERA},
PERMISSIONS_REQUEST_ACCESS_CAMERA);
} else {
mScannerView.startCamera();
}
然后覆盖onRequestPermissionResult:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSIONS_REQUEST_ACCESS_CAMERA) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mScannerView.startCamera();
}
}
}
希望这有助于:)
答案 1 :(得分:-2)
在Android 6下的Nexus 5X上发生了同样的问题。解决方法是添加Flashlight权限。
<uses-permission android:name="android.permission.FLASHLIGHT" />