Android 11 MotionEvent differences in touch positions when Game Plugins App is set to Max FPS

Hi, we’ve detected an issue with MotionEvent API for accessing touch coordinates on the recent Android 11 upgrades.

When a game is downloaded from Google Play and the Samsung phone OS (Android 11 / One UI 3.0) sets the optimisation level to Max FPS we see differently scaled touch coordinates between MotionEvent.getX() / getY() and MotionEvent.getPointerCoords().

The coordinates returned by getX() and getY() are seemingly the correctly scaled coords (scaled due to Max FPS phone setting forcing the rendering to a smaller view) whereas the ones in MotionEvent.getPointerCoords() are incorrect.

If we open the Games Plugin app and change the setting to ‘High Quality’ instead of ‘Max FPS’ then the touch coordinates from both methods match.

This issue has only started affecting our games since the Android 11 has started rolling out and so far we’ve only complaints from Samsung owners, which makes sense if it is the game optimisation systems built into the Samsung firmware causing the issue.

Our games have been installed on 10’s of millions of phones around the World and we have never previously had issues with our touch handling code.

I’d appreciate it if Samsung could investigate this issue to ensure that the MotionEvent APIs are consistent across different Android versions.

Best regards,
Nigel
Distinctive Games