Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用相同的程序,相同的二维码,只有华为手机通过图片文件时会识别失败 #198

Open
RyoJerryYu opened this issue Jul 1, 2021 · 0 comments

Comments

@RyoJerryYu
Copy link
Contributor

使用两部手机,同一个二维码,其中一部扫描、图片读取都能识别,另一部扫描能识别,图片读取不能识别。

库版本

2.2.9

引入方式

使用gradle进行引入

implementation 'com.github.yuzhiqiang1993:zxing:2.2.9'

测试环境

  1. 小米5s(MIUI 10 9.6.20 Beta),Android版本 8.0.0
  2. 华为荣耀X10(Magic UI 3.1.1),Android版本 10
  3. Gradle中Sdk设置
    android {
        compileSdkVersion 30
        buildToolsVersion "30.0.3"
    
        defaultConfig {
            minSdkVersion 21
            targetSdkVersion 30
            ...
        }
        ...
    }
    

再现

  1. 二维码大小33 * 33格,480 * 480像素。图片整体大小1080 * 2400像素。
  2. Manifest中权限声明如下:
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.FLASHLIGHT" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
  3. 使用PermissionX申请动态权限CAMERA, READ_EXTERNAL_STORAGE
    PermissionX
          .init(this)
          .permissions(Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE)
          .request((allGranted, grantedList, deniedList) -> {
              if (!allGranted) {
                  doSomething();
              } else {
                  startTheCaptureActivity();
              }
          });
    
  4. 使用小米调用摄像头扫描该二维码,成功识别。读取该图片,成功识别。
  5. 使用荣耀调用摄像头扫描该二维码,成功识别。读取该图片,识别失败。

疑问

同一部华为手机相同的二维码,扫描能识别而读取图片不能识别,这是什么问题呢?
而另一部小米手机,相同的程序,相同的二维码,扫描读取图片都能识别,证明不是程序问题。
是不是库的兼容性的问题呢?如果是,这个兼容性问题能修复吗?
如果一时不能修复,请问又应如何补救,使得华为手机能识别图片中的二维码呢?
如果修复问题需要我提供测试时使用的二维码图片,可以回复让我提供。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant