图书馆条形码扫描仪ZXing给黑屏

时间:2015-10-11 14:00:49

标签: android camera barcode

我正在使用ZXing的条形码扫描程序库。 它适用于我的所有测试设备,除了 运行Android 6的Nexus 5。 开始活动时,它只提供黑屏,而且全部都是。 所以我想,好吧,也许有一些兼容性问题 我下载了ZXing发布的官方条码应用程序。 但它在Nexus 5上运行良好。

所以实际上我有点恼火,我可能做错了......

在Android Monitor中,我收到消息:

  

android连接到相机0时发生错误

我已经搜索过该状态消息但未找到对我有用的任何内容。

有没有人建议如何解决这个问题? 或者提示如何识别问题的原因?

2 个答案:

答案 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" />