Android - 侦听特定应用程序启动并启动其他应用程序

Android - Listen for a specific application to launch and launch some other application instead

我正在尝试让应用程序侦听要启动的特定应用程序 (A1),然后启动其他应用程序 (A2)(用户的选择)。

目前我使用两个权限,PACKAGE_USAGE_STATSBIND_ACCESSIBILITY_SERVICE。第一个权限当前用于检测特定应用程序 (A1) 何时启动。第二个权限用于模拟按下按钮,例如主页或返回。

我早些时候尝试使用下面的代码在特定应用程序 (A1) 启动后立即启动另一个应用程序 (A2),但没有成功(应用程序 A1 仍在顶部)。

Intent intent = activity.getPackageManager().getLaunchIntentForPackage(SPECIFIC_APPLICATION_PKG); activity.startActivity(intent);

我意识到当离开特定应用程序 (A1) 并转到 launcher/home 屏幕时,可以启动另一个应用程序 (A2)。我模拟了特定应用程序 (A1) 启动后立即按下,然后成功启动了另一个应用程序 (A2)。这种方法的问题是,当在第三个应用程序 (A3) 中执行上述步骤时,我最终会进入第三个应用程序 (A3),换句话说,不会启动应用程序 A2。为了尝试为此找到解决方案,我想到了将后按改为主按的想法,这总是让我从所有应用程序进入 launcher/home 屏幕。但是,如果我来自第三个应用程序 (A3) 并启动 A1(例如通过最近的菜单),然后按主页(通过代码)并尝试启动 A2(通过代码),而不是我们出于某种原因转到 A3 我可以想明白了。

感谢所有帮助!

我在 SO 上的先前问题中找到了解决方案。

Starting an activity from a service after HOME button pressed without the 5 seconds delay

看千尼斌的回答