Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically find how many fingers in multitouch Android device supports

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.

like image 887
iseeall Avatar asked Jan 14 '13 16:01

iseeall


2 Answers

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.
like image 115
andr Avatar answered Nov 17 '22 20:11

andr


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

like image 2
323go Avatar answered Nov 17 '22 19:11

323go