小编use*_*318的帖子

如何将dispatchTouchEvent()从服务发送到任何Underlay活动

我想做的事? - 基本上我想在特定的时间在特定的X,Y坐标上实用地进行人体触摸 - 运行一个服务,它将通过某个接口(TCP/UDP)接收X,Y坐标 - 使用这些坐标激活dispatchTouchEvent()并获取实际人类手指点击给出的结果 - 我的意思是焦点活动可能是Android主屏幕或任何打开的活动或任何事情 - 片刻服务调用dispatchTouchEvent(),它应该执行点击. - 例如,如果打开App是计算器,并且dispatchTouchEvent()的X,Y坐标指向数字5,则应按5键

我现在做了什么? - 我已经启动了一个接收X,Y坐标的服务 - 在某个触发器上,它调用dispatchTouchEvent(),但它不起作用.它不会点击屏幕上的任何内容. - 它捕捉人类手指所做的每一次触摸事件.

问题是什么? - 如何将dispatchTouchEvent()发布到任何底层活动

示例代码: 我在这里附上示例代码.我刚刚将它简化为测试目的.首先,我们需要点击屏幕中的任意位置.它的X,Y坐标将被保存,一段时间后,将使用相同的坐标调用dispatchTouchEvent().

MainActivity.java

package com.test.overlay;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Intent intent = new Intent(this, Overlay.class);
        Intent intent = new Intent(this, PlayerServiceTest.class);
        startService(intent);
        finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

Overlay.java

package com.test.overlay;
import android.annotation.SuppressLint;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PixelFormat; …
Run Code Online (Sandbox Code Playgroud)

events handle touch

6
推荐指数
0
解决办法
963
查看次数

标签 统计

events ×1

handle ×1

touch ×1