4

I've had to replace the screen and touch assembly on a device I have but now the new hardware is too noisy: most of my taps end up being recognized as swipes or flings, making for a very frustrating experience.

What can be done to fix this? An ideal solution would be to fine-tune the gesture detection logic to be less restrictive on what is considered a tap, interpreting fast short-distance flings as taps instead.

Any solution that involves root, xposed or recompiling the OS with suggested tweaks is welcome. The device in question runs LineageOS 15.1, based on Oreo.

2 Answers 2

2

According to Android's developer documentation:

Because finger-based touch isn't always the most precise form of interaction, detecting touch events is often based more on movement than on simple contact. To help apps distinguish between movement-based gestures (such as a swipe) and non-movement gestures (such as a single tap), Android includes the notion of touch slop. Touch slop refers to the distance in pixels a user's touch can wander before the gesture is interpreted as a movement-based gesture.

In the AOSP source code, the touch slop value is obtained with one of two functions on frameworks/base/core/java/android/view/ViewConfiguration.java:

/**
 * @return Distance in dips a touch can wander before we think the user is scrolling
 *
 * @deprecated Use {@link #getScaledTouchSlop()} instead.
 */
@Deprecated
public static int getTouchSlop() {
    return TOUCH_SLOP;
}

/**
 * @return Distance in pixels a touch can wander before we think the user is scrolling
 */
public int getScaledTouchSlop() {
    return mTouchSlop;
}

I haven't seen any Android device or ROM that provides a way to change this value through system settings or similar, but possible ways to change it yourself are:

  1. Changing the config.xml entries, either through an overlay mechanism or by creating your own custom ROM,
  2. Hooking the getTouchSlop and getScaledTouchSlop functions to have them return a different value, through e.g. Xposed or one of its forks.
0

There are many apps that target this specific issue available through the Play store, and many of them do not even require root access. The search term I would recommend that you use would be "screen calibration" or similar; due to the sheer volume of them, I won't suggest any in particular but I have tried multiple myself throughout the years (while exercising common sense, e.g., checking reviews prior to downloading) and they seem to do the trick perfectly. Some are targeted toward mobile repair technicians and come with multiple utilities and test functions (such as for other sensors and screen functions), I tend to find these more "trustworthy" in that the targeted consumers are able to leave more competent and detailed reviews.

Edit: @And0réCarini I know some of them do work, typically the type that has you tap a target within four quadrants of the screen, and it typically does not require root. However, please note that 1) dependent on the cause, sensitivity might not be the issue or what needs to be adjusted, and 2) depending on your device model, there could be other variables at play (e.g., Samsung Note devices have two separate digitizers, one for the stylus and one for finger touches).

It may benefit you to first activate developer mode and enable the show screen touches option to see if there are any visual clues as to what's going on. You can also access your device's diagnostics mode (aka, [advanced] test menu, example) to see if the touch test can help identify any further details. And, if on the off-chance it is due to a faulty / damaged digitizer, as a temporary measure there are apps available that allow you to custom set boundary areas on your screen that will block touch inputs, which can mitigate unintended input behavior (assuming it's stemming from a contained localized area).

Finally, I was able to find this post (root required) in regards to a potential method to adjust your touch sensitivity, but please note this is specific to the Pixel 2 XL so YMMV.

On a separate note, it seems that the minimum distance for swipes to activate are determined by the application's code (see here and here); as the distance is predetermined, I would infer another possibility aside from a sensitivity issue may be a multi-touch issue causing a false swipe input to be registered; my above suggestions may help confirm or eliminate that possibility.

1
  • I've tried a few and noticed no difference; I don't know either how any of these apps (especially non-root ones) could tweak the gesture detection mechanism system-wide. I'm inclined to think they're pure adware. Commented Feb 26, 2019 at 11:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .