Android 3 пальца сенсорного обнаружения

Я успешно могу записать координаты двух пальцев, которые касаются экрана, используя следующий код:

case MotionEvent.ACTION_MOVE: Log.d("TOUCH", "test ACTION MOVE" + event.getPointerCount()); Log.d("TOUCH", "test ACTION MOVE ID" + event.getPointerId(0) + " "+event.getPointerId(1)); if(event.getPointerCount()==3) { x0 = (int) event.getX(event.getPointerId(0)); y0 = (int) event.getY(event.getPointerId(0)); x1 = (int) event.getX(event.getPointerId(1)); y1 = (int) event.getY(event.getPointerId(1)); x2 = (int) event.getX(event.getPointerId(2)); y2 = (int) event.getY(event.getPointerId(2)); Log.d("TOUCH", "test ACTION DOWN " + " values = " + x0 + " " + y0 + " " + x1 + " " + y1+ " "+x2 + " " + y2); } 

Но в приведенном выше коде им не удается обнаружить более двух точек касания в одном экземпляре. Даже указательCount () никогда не выходит выше 2.

Как я могу получить координаты касания более двух пальцев? Я запускаю этот код на Android 2.2

Это было спрошено некоторое время назад, но в любом случае. Ответ заключается в том, что хотя андроид мог отслеживать 256 пальцев, текущая реализация ограничивает это на 2 пальца.

Я не уверен в сотах, но я думаю, что у него такая же проблема.

Я подтвердил 4 касания на некоторых устройствах Android 2.3.5 и на всех устройствах 3.x и 4.x, которые я тестировал до сих пор. Похоже, что по крайней мере из API 8+ поддерживается более двух касаний, но зависит от устройства.

Мультитач, который использует более двух пальцев, может быть выполнен только в версии Android версии 4.1.2 или выше, а также разные компании настроили версии Android в соответствии с их потребностями и приложениями, то есть в версии 4.1.2 Qmobile поддерживает только пять пальцев, но отличный samsung Компания использует более 11 пальцев

  firstFingerX = MotionEventCompat.getX(ev, 0); firstFingerY = MotionEventCompat.getY(ev, 0); if (numberOfFingers == 2) { Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 1))); secondFingerX = MotionEventCompat.getX(ev, 1); secondFingerY = MotionEventCompat.getY(ev, 1); } if (numberOfFingers == 3) { Log.e("mine", "Integer: " + String.valueOf((int)MotionEventCompat.getY(ev, 2))); thirdFingerX = MotionEventCompat.getX(ev, 2); thirdFingerY = MotionEventCompat.getY(ev, 2); }