zxing 二维码扫描仪摄像头显示白屏

zxing qr code scanner camera showing white screen

美好的一天!我在 android marshmallow 和 nougat 中使用我作为依赖项添加到我的项目中的库的二维码扫描仪出现问题相机显示白屏。代码在 lollipop 和 kitkat 中完美运行。请让我知道是否有我遗漏的东西或我会做些什么来让它发挥作用。我在下面粘贴了我的代码片段。如果您能给我一些时间来注意到我的担忧,我会很高兴。我已经看到了我的问题的类似主题,但它没有帮助我解决问题,或者我实施错误。先感谢您。

我有生成二维码的zxing jar库,我用的是我dm7.barcodescanner:zxing:1.8.4扫描二维码:

dependency {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 compile files('libs/zxing-2.1.jar')
 compile('me.dm7.barcodescanner:zxing:1.8.4'){
    exclude group: 'com.google.zxing'
   }
}

Activity为开摄像头:

public class ScanQRCodeActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private String strDataEncrypted;
private ZXingScannerView mScannerView;
public static String strEncrypt;
public static String strEncrypted;
public static String strIV;
public static boolean isScanSuccess = false;

@Override
public void onCreate(Bundle state) {
    super.onCreate(state);
    mScannerView = new ZXingScannerView(this);
    setContentView(mScannerView);
}

@Override
public void onResume() {
    super.onResume();
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();
}

@Override
public void onPause() {
    super.onPause();
    mScannerView.stopCamera();
}

@Override
public void handleResult(Result result) {
    strDataEncrypted = result.getText();
    Log.wtf("handleResult", strDataEncrypted);
    String[] strSplit = strDataEncrypted.split("\|\|");
    strEncrypted = strSplit[0].trim();
    strIV = strSplit[1];
    CryptLibHelper cryptLibHelper = new CryptLibHelper();
    cryptLibHelper.decrypt(strEncrypted, strIV, new CryptLibHelper.CryptLibDecryptCallback() {
        @Override
        public void onDecryptFailed(String str_message) {
            Log.wtf("onDecryptFailed", str_message);
        }

        @Override
        public void onDecryptSuccess(String str_message) {
            if (str_message.contains("}")) {
                strEncrypt = str_message.replace("}", "");
                Log.wtf("onDecryptSuccess", strEncrypt);
            }
        }
    });
    onBackPressed();
    isScanSuccess = true;
    mScannerView.resumeCameraPreview(this);
}

}

你有没有在你的应用中添加 CAMERA 权限检查??从 marshmallow 开始,您需要向用户询问一些权限。

您可以先尝试从设备设置中手动为您的应用授予权限。

我断断续续地遇到这个问题,我的问题是我的应用程序请求相机权限太晚了!确保您的应用程序请求相机权限BEFORE创建 ZXing 二维码扫描仪实例。