当手指仍在屏幕上时,Android JazzHand设备会触发MouseEvent.ACTION\u

当手指仍在屏幕上时,Android JazzHand设备会触发MouseEvent.ACTION\u,android,multi-touch,Android,Multi Touch,我正在不同的Android手机上测试不同的多点触摸跟踪。运行Android KitKat 4.4.4的摩托罗拉Moto G具有JazzHand功能:它能同时响应5次屏幕触摸。然而,有时当两个或更多的手指仍在屏幕上时,它会停止对触摸的响应 当手指仍在屏幕上时,会不时触发一个MotionEvent,该事件通过MouseEvent.ACTION\u UP响应getActionMasked()。从那时起,检测不到其他触摸。你必须举起所有的手指,然后重新开始 我正在使用一个基本的Hello World项目

我正在不同的Android手机上测试不同的多点触摸跟踪。运行Android KitKat 4.4.4的摩托罗拉Moto G具有JazzHand功能:它能同时响应5次屏幕触摸。然而,有时当两个或更多的手指仍在屏幕上时,它会停止对触摸的响应

当手指仍在屏幕上时,会不时触发一个MotionEvent,该事件通过MouseEvent.ACTION\u UP响应getActionMasked()。从那时起,检测不到其他触摸。你必须举起所有的手指,然后重新开始

我正在使用一个基本的Hello World项目,并对其进行了一些小的修改。activity_main.xml和MainActivity.java文件的内容如下所示。输出应为接触点列表。当您抬起手指时,输出应为空白。但是,当您在屏幕上移动手指时,有时也会发生这种情况

如果您能在自己的多点触控Android设备上进行测试,让我知道在其他设备型号上是否也会出现这种情况,我将不胜感激。如果您能提供一个解释或解决办法,那将不胜感激


activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivity">

    <TextView
        android:text="@string/hello_world"
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</RelativeLayout>

MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.TextView;


public class MainActivity extends Activity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.text_view);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {

        String points = "";
        int action = event.getActionMasked();

        if (action == MotionEvent.ACTION_CANCEL) {
            points = "Action cancelled";
        } else if (action != MotionEvent.ACTION_UP) {
            int size = event.getPointerCount();

            for (int ii = 0; ii < size; ii++) {
                points += "\n(" + event.getX(ii) + ", " + event.getY(ii) + ")";
            }
        }

        textView.setText(points);

        return true;
    }
}
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.MotionEvent;
导入android.widget.TextView;
公共类MainActivity扩展了活动{
私有文本视图文本视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(textView)findViewById(R.id.text\u视图);
}
@凌驾
公共布尔onTouchEvent(运动事件){
字符串点=”;
int action=event.getActionMasked();
if(action==MotionEvent.action\u CANCEL){
points=“行动取消”;
}else if(action!=MotionEvent.action\u UP){
int size=event.getPointerCount();
用于(int ii=0;ii