Java 通过Android易访问性服务模拟点击

Java 通过Android易访问性服务模拟点击,java,android,Java,Android,我试图在android应用程序中利用可访问性服务模拟一个点击功能。我已在清单中设置了该服务,并在手机设置中启用了该服务。我有一个MouseAccessabilityService类,它包含一个单击函数: // Clikc function that clicks at a specific x and y coordinate @RequiresApi(api = Build.VERSION_CODES.N) public static GestureDescription click(floa

我试图在android应用程序中利用可访问性服务模拟一个点击功能。我已在清单中设置了该服务,并在手机设置中启用了该服务。我有一个MouseAccessabilityService类,它包含一个单击函数:

// Clikc function that clicks at a specific x and y coordinate
@RequiresApi(api = Build.VERSION_CODES.N)
public static GestureDescription click(float x, float y) {
    // for a single tap a duration of 1 ms is enough
    final int DURATION = 1;

    Path clickPath = new Path();
    clickPath.moveTo(x, y);
    GestureDescription.StrokeDescription clickStroke =
            new GestureDescription.StrokeDescription(clickPath, 0, DURATION);
    GestureDescription.Builder clickBuilder = new GestureDescription.Builder();
    clickBuilder.addStroke(clickStroke);
    return clickBuilder.build();
}
我通过一个触发点击的按钮来调用MainActivity中的点击功能(出于测试目的):

X和Y作为整数变量从其他一些功能传递。我似乎无法在我的应用程序中使用click()函数并按下按钮

我说的对吗?这个功能还能工作吗?我对此束手无策,非常感谢您的帮助


谢谢。

您可以使用Dispatch手势功能

尝试将单击函数的返回替换为:
返回分派手势(clickBuilder.build(),null,null)


您可以使用Dispatch手势功能

尝试将单击函数的返回替换为:
返回分派手势(clickBuilder.build(),null,null)

Buttonclick = (Button)findViewById(R.id.clickbutton);

    Buttonclick.setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.N)
        @Override
        public void onClick(View view) {
            //changeButtonText.setText("Second Text");
            MouseAccessabilityService.click(centerX, centerY);
        }
    });