假设我想从我的新 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 屏幕本身启动一个触摸事件(因为另一个活动将打开)。
有办法做到这一点吗?我想我要问的是:有没有一种方法可以以编程方式仅向屏幕本身启动触摸事件,而不是我自己的应用程序中的视图?