Programmatically find how many fingers in multitou

2020-07-06 07:57发布

On Android, it is possible to check programmatically if the device supports multitouch or not wth http://developer.android.com/reference/android/content/pm/PackageManager.html#FEATURE_TOUCHSCREEN_MULTITOUCH.

Is it also possible to check exactly how many fingers the device can recognize in multitouch? E.g. from what I know, a 2-finger multitouch is supported starting with 2.x, but 3-finger multitouch from 4.0. But our customer reports having some new devices with 4.x which still don't support 3 fingers, which makes a simple check against the version of Android OS useless.

A possible solution would be to store in some dictionary for each device which number of fingers it supports max, but with 1k+ devices out there and new ones constantly appearing it's not viable.

Any solution?

EDIT: In fact I just found that the issue reported by the customer was a device issue on HTC One series. See http://www.mobiflip.de/htc-one-serie-multitouch-beschraenkung-aufheben-tipp/ The user has to turn the device-specific gestures recognition in settings to get 5+ fingers working. So, the device would probably even show 5+ fingers support. I guess we will just check for the device's model and show special popup for it telling the user to turn that HTC-specific setting off.

2条回答
Viruses.
2楼-- · 2020-07-06 08:59

As far as I know, there is no way of obtaining the exact number of pointers supported by a device. I don't want to reinvent the wheel here, so I'd like to share a similar problem and a great answer here: Android multitouch in supported devices.

To summarize, notable is the method PackageManager.hasSystemFeature() which allows you to find out in which multitouch-support category does current device belong. Useful feature codes include:

  • FEATURE_TOUCHSCREEN_MULTITOUCH - basic support for 2 pointers
  • FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT - support for 2+ independent pointers.
  • FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND - support for 5+ independent pointers.
查看更多
虎瘦雄心在
3楼-- · 2020-07-06 09:00

Instead of checking just for MULTITOUCH, you want to check for FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND

查看更多
登录 后发表回答