Android Java:有没有办法以编程方式仅向屏幕本身而不是我自己的应用程序中的视图启动触摸事件?

问题描述 投票:0回答:0

假设我想从我的新 Android 应用程序启动一个 Activity,如下所示:

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

        Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.something.app");
        if (launchIntent != null) {
            startActivity(launchIntent);
        }
    }

如果屏幕现在显示另一个应用程序,我是否可以在设备屏幕上选择的 (x, y) 坐标处强制执行触摸事件? (顺便说一句,另一个应用程序不是我自己的应用程序)。例如,我可以启动 com.something.app 活动,然后仍然在 com.something.app 活动上的某处触发触摸事件吗?我查找了如何以编程方式触发触摸事件,我发现了这样的内容:

// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;

int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
  downTime,
  eventTime,
  MotionEvent.ACTION_UP,
  x,
  y,
  metaState
);

// Dispatch touch event to view
view.dispatchTouchEvent(motionEvent);

但是,请注意最后一行 view.dispatchTouchEvent(motionEvent) 要求有一个视图(在您自己的应用程序内)来启动触摸事件。然而,我想仅向 Android 屏幕本身启动一个触摸事件(因为另一个活动将打开)。

有办法做到这一点吗?我想我要问的是:有没有一种方法可以以编程方式仅向屏幕本身启动触摸事件,而不是我自己的应用程序中的视图?

android android-intent touch-event
© www.soinside.com 2019 - 2024. All rights reserved.