是否可以从另一个应用程序内部运行应用程序?我想要做的是编写一个应用程序,允许您选择要启动的应用程序,然后在视图中显示此应用程序的活动。
所以在横向模式下,它看起来应该是这样的:
这背后的想法是:
我希望能够在我自己的活动旁边开始并运行第三方活动,并且我希望能够通过控制第三方活动的活动创建单独的makros。
基本上,这样的事情:
那么如何从我自己的活动中开始和控制另一个活动呢?
无根: 可悲的是,如果没有手机,你想要实现的目标似乎是不可能的,因为你只能通过意图与其他应用互动。由于开发人员决定他们的应用程序对特定意图的反应,因此以这种方式创建宏几乎是不可能的。
有根电话:
getPackageManager().getInstalledApplications(PackageManager.GET_META_DATA);
检索所有已安装应用的列表。MotionEvent#obtain
重新创建事件。Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendPointerSync(motionEvent);
您可以找到有关注入(也是关键事件)here的更多信息。无法在View
中启动应用程序,但您可以在应用程序中启动应用程序:
Intent i = getPackageManager().getLaunchIntentForPackage("com.package.ofapp");
startActivity(i);
//编辑您更新的问题:
从上面的代码开始活动后,您可以在新应用程序中随时启动/停止宏的一种方法是在屏幕顶部创建一个小视图覆盖。
此叠加层将位于所有活动之上。
看看以下链接:Creating a system overlay window (always on top)
您可以编写代码以在按下View时启动宏,然后如果按下按钮一次并且用户再次按下该按钮,则停止宏。这将是onTouchEvent()
方法。
是的,我认为这可能是一个名为浮动应用程序的应用程序(没有根)
仅使用一些adb命令
https://play.google.com/store/apps/details?id=com.lwi.android.flapps
是的,如果你使用Intents,它是可能的。它们允许您在屏幕之间移动并在同一个应用程序中启动另一个不同的功能。访问coursera获取更多关于意图的教程