Closed psteniusubi closed 1 month ago
Hi @psteniusubi,
I've just tested the functionality, and it works as expected. Could you please provide more information about your issue?
Thanks
Hi @stzouvaras, Yes I agree this is probably a Phone model / Operating system specific issue. However I have not experienced QR scanning issues using other apps on this phone.
This is a Nokia X30 G5 device, running Android 14 with September 2024 security update.
Here is a link to a video, hope it works. https://photos.app.goo.gl/xHAtio8yxwhHAHzz6
In the video I first try scanning from the Wallet app. Nothing happens. Then I use the built in QR scanner of my phone.
Basically on my browser I navigate to https://verifier.eudiw.dev/home, then select PID authentication with first name and last name claims On my phone I launch the Wallet app and select Scan a QR code from the drop menu
For the Wallet app I have tried both the pre-compiled binary from https://install.appcenter.ms/orgs/eu-digital-identity-wallet/apps/eudi-reference-android/distribution_groups/eudi%20wallet%20(demo)%20public and a binary I have compiled myself from latest source codes.
QR code scanning is using https://github.com/zxing/zxing. There's a statement from zxing:
If this is true then QR code scanning with zxing does not work on Android 14. Can someone confirm?
Hi @psteniusubi,
I'm currently using a Samsung Galaxy Z Fold 6 with Android 14, and it works as expected. Other devices with Android 14 have also been tested, such as the Poco F5 and Realme.
Maybe there's something device or Android flavor specific. Do you have any other devices to test?
I found a possible cause and have created a fix for this here https://github.com/psteniusubi/eudi-app-android-wallet-ui/tree/fix-qr-code-scanner
Looks like [rowStride](https://developer.android.com/reference/android/media/Image.Plane#getRowStride()) was not considered. Using a debugger I found images produced on my phone have a width of 640, but the byte representation is padded to 1024 bytes.
The fix is to set dataWidth to plane.rowStride when creating PlanarYUVLuminanceSource.
Hi @psteniusubi,
thanks for that! Could you please create a pull request here so we can review and test it?
Thanks
@psteniusubi PR merged you can close the issue now. Thanks
I navigate to https://verifier.eudiw.dev/home and select PID authentication. A QR code is displayed on the web page
The wallet app fails to scan the QR code for PID authentication. The camera in the app displays the QR code but nothing happens
However, I can scan the QR code with the built-in QR code scanner on my phone. This lets me launch the EUDI Wallet app and complete authentication.