[android] Fingerprint scanner detected as gamepad
From a review on Google Play:
poco f3 - controls for walking, attack, etc. are not displayed. In previous versions of the launcher, everything was fine (as if the game thinks that I have a gamepad connected, BUT I DON'T HAVE IT!) P.S. it doesn't matter, this error is a problem with the fingerprint scanner drivers of some smartphones. Gamepad auto-detect games mistake scanner for gamepad, solution is to add gamepad/touch manual control switch
If I'm understanding it correctly there phones fingerprint reader is being detected as a hardware input causing the input mode to switch away from touch.
While it is unfortunate I do not agree with the notion that auto detection should be removed. And preferably we can even avoid an overwrite setting.
The user was running Android 11 on a Xiaomi Poco F3 phone (which failed to be detected properly by Google Play, so may be an unofficial ROM).
(Original Russian text)
poco f3 - не отображаются элементы управления ходьбой, атакой и т.д. В предыдущих версиях лаунчера все было нормально (как будто игра думает что у меня подключен геймпад, НО У МЕНЯ ЕГО НЕТУ!) P.S. это не имеет значения, эта ошибка - проблема драйверов сканера отпечатков пальцев некоторых смартфонов. Игры с автоопределением геймпада принимают сканер за геймпад, решением проблемы является добавление переключателя ручного управления геймпад/сенсорный ввод
I see this, and I think the same problem may occur with the Google Pixel.
https://github.com/libsdl-org/SDL/blob/120c76c84bbce4c1bfed4e9eb74e10678bd83120/src/joystick/SDL_gamecontroller.c#L1825
@bubio that's probably the same case. There are lots of devices with this issue.
@bubio that's probably the same case. There are lots of devices with this issue.
I see. Wish I had a good solution...
It looks like it was confirmed on another phone of the same model:

@yuripourre do you have access to an affected device? If we can get the debug output we can filter out the problematic devices.
If we can find the names these two hints can be used to either whitelist or blacklist controllers. SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT Potentially we could expose this in the ini
@AJenbo no, unfortunately not. I heard about this issue in controller libraries that relies on SDL. There is a "list of devices to be ignored" out there, I can try to find it.
@AJenbo this is how SDL handles the fingertip for Google Pixel devices: https://github.com/libsdl-org/SDL/commit/a2e856523089d5d95ba565a26a35ab367c960f12
I will try to find a more complete list.
I've tried it with a POCO F3 (M2012K11AG) and had no problems with the touch interface. Must be a specific sub model
They appear to have removed there review so I'm not able to communicate with them any longer
Good news, the guy apparently understands English:

Google does appear to not be listing there reviews, but they can still be accessed directly so for future reference I'm adding the review id here: gp%3AAOqpTOF3_eUpqg33D0PiiDr5DEGM648zGokMTDIjGGBHJpfgQ6dWHB83Pu8MkbDmTREOeJf1gPlT0856JWZ8iF8
Came across this while looking at the outher issues out of curiosity.
Poco F3 uses fpc fingerprint which gets detected as a joystick.
https://github.com/Android-Device-Development/android_kernel_xiaomi_sm8250/blob/b29471c8fa15fffe46bdc6c5d69294b02edba1fa/arch/arm64/configs/vendor/alioth_defconfig#L368
Fixed in upstream for android phones only and later globally. https://github.com/libsdl-org/SDL/commit/a2e856523089d5d95ba565a26a35ab367c960f12
https://github.com/libsdl-org/SDL/commit/7fa46ec40b8b6a58f174f0992ecead0a1ab23817
@nitanmarcel the odd thing is that we actually released with https://github.com/libsdl-org/SDL/commit/727eef7064e02aea89281493d0c5f16ad9e3c16f which sould include https://github.com/libsdl-org/SDL/commit/a2e856523089d5d95ba565a26a35ab367c960f12
Are you able to trigger this on a Poco F3?
@nitanmarcel the odd thing is that we actually released with libsdl-org/SDL@727eef7 which sould include libsdl-org/SDL@a2e8565
Are you able to trigger this on a Poco F3?
I don't have a Poco F3 but weirdly enough I tried to compile a sdl version with the global fpc fix and the fingerprint still got detected.
Will try on Android. Most likely the same will happen since I have the same fingerprint vendor
If you can help with solving this it would be very much appreciated :)