android – 应用程序内的应用程序

是否可以从另一个应用程序中运行应用程序?我想做的是编写一个应用程序,允许您选择一个应用程序开始,然后在视图中显示此应用程序的活动.

所以在风景模式下,应该是这样的:

这背后的想法是:

我想要能够在我自己的活动旁边开始并运行第三方活动,而且我想要能够通过我的活动来创建个人makros来控制第三方活动.

基本上是这样的:

>从我的应用程序内部开始第三方活动
>开始makro录音
>在第三方活动中做某事
>停止makro录音
>随时随地使用makro

那么我如何从我自己的活动中开始和控制另一个活动?

解决方法

无根:
可悲的是,如果没有生根手机,您只能通过意图与其他应用程序进行交互,似乎无法实现.由于开发人员决定了他们的应用程序对特定意图的反应,所以以这种方式创建宏几乎是不可能的.

有了root电话:

>您可能需要创建所有已安装应用程序的列表,您可以使用

getPackageManager().getInstalledApplications(PackageManager.GET_Meta_DATA);

检索所有安装的应用程序的列表.
>如果用户现在选择一个应用程序,通过意图启动它,并创建系统覆盖以获得所有触摸/键事件(并让用户停止宏).您可以找到一种方法来执行此操作here.存储触摸事件的x / y值.
>您可以使用MotionEvent#obtain重新创建事件.
>现在,你需要一个根电话的部分(权限INJECT_EVENTS).启动应用程序并注入事件,以便您的宏被执行. Samplecode:

Instrumentation m_Instrumentation = new Instrumentation();
m_Instrumentation.sendPointerSync(motionEvent);

你可以找到更多关于注入(还有keyevents)here的信息.
>如果您需要帮助来编译您的应用程序,这2个链接将帮助您:How to compile Android Application with system permissions,Android INJECT_EVENTS permission

相关文章

以下为个人理解,如错请评 CE: 凭据加密 (CE) 存储空间, 实际路径/data/user_ce/ DE: 设备加密 (DE) 存...
转载来源:https://blog.csdn.net/yfbdxz/article/details/114702144 用EventLog.writeEvent打的日志(或...
事件分发机制详解 一、基础知识介绍 1、经常用的事件有:MotionEvent.ACTION_DOWN,MotionEvent.ACTION...
又是好久没有写博客了,一直都比较忙,最近终于有时间沉淀和整理一下最近学到和解决的一些问题。 最近进...
Android性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向...
android的开源库是用来在android上显示gif图片的。我在网上查了一下,大家说这个框架写的不错,加载大的...