使用相同的程序,相同的二维码,只有华为手机通过图片文件时会识别失败
RyoJerryYu opened this issue · 0 comments
RyoJerryYu commented
使用两部手机,同一个二维码,其中一部扫描、图片读取都能识别,另一部扫描能识别,图片读取不能识别。
库版本
2.2.9
引入方式
使用gradle进行引入
implementation 'com.github.yuzhiqiang1993:zxing:2.2.9'
测试环境
- 小米5s(MIUI 10 9.6.20 Beta),Android版本 8.0.0
- 华为荣耀X10(Magic UI 3.1.1),Android版本 10
- Gradle中Sdk设置
android { compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { minSdkVersion 21 targetSdkVersion 30 ... } ... }
再现
- 二维码大小33 * 33格,480 * 480像素。图片整体大小1080 * 2400像素。
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" />
- 使用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(); } });
- 使用小米调用摄像头扫描该二维码,成功识别。读取该图片,成功识别。
- 使用荣耀调用摄像头扫描该二维码,成功识别。读取该图片,识别失败。
疑问
同一部华为手机相同的二维码,扫描能识别而读取图片不能识别,这是什么问题呢?
而另一部小米手机,相同的程序,相同的二维码,扫描读取图片都能识别,证明不是程序问题。
是不是库的兼容性的问题呢?如果是,这个兼容性问题能修复吗?
如果一时不能修复,请问又应如何补救,使得华为手机能识别图片中的二维码呢?
如果修复问题需要我提供测试时使用的二维码图片,可以回复让我提供。