Android 安卓,创建;“不可见”。apk

Android 安卓,创建;“不可见”。apk,android,android-intent,plugins,Android,Android Intent,Plugins,我正在开发一个Android框架,该框架由一个在前台执行的main.apk和一组可以下载并安装到设备中的“插件”组成。 该体系结构的主要目的是只有一个应用程序正在运行并对用户可见,以及一组由主应用程序执行但不能直接执行的插件 到目前为止,我发现查找设备上安装的可用软件包的一种方法是以下代码: packageManager = getPackageManager(); applications = new ArrayList<>(); Intent intent = new Inten

我正在开发一个Android框架,该框架由一个在前台执行的main.apk和一组可以下载并安装到设备中的“插件”组成。 该体系结构的主要目的是只有一个应用程序正在运行并对用户可见,以及一组由主应用程序执行但不能直接执行的插件

到目前为止,我发现查找设备上安装的可用软件包的一种方法是以下代码:

packageManager = getPackageManager();
applications = new ArrayList<>();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = packageManager.queryIntentActivities(intent,0);
packageManager=getPackageManager();
applications=new ArrayList();
意图=新意图(Intent.ACTION\u MAIN,空);
intent.addCategory(intent.CATEGORY_启动器);
List availableActivities=packageManager.QueryInputActivities(intent,0);
但是这段代码检索所有暴露了CATEGORY_启动器的包。 我的问题如下:

  • 我可以创建一个安装时用户看不到的apk吗?因此,它不提供独立发射的可能性
  • 如果我创建了一个自定义意图,我如何使主应用程序知道系统中已经安装了一个分组到新意图中的新包?一种触发器,可能吗
可以在静默状态下下载并安装到设备中

这是不可能的,除非是在根设备上或通过特殊的系统应用程序。否则,用户将参与插件的安装

我可以创建一个安装时用户看不到的apk吗?因此,它不提供独立发射的可能性

如果您的意思是这样的话,您可以拥有一个没有活动的应用程序,该应用程序具有
启动器
。用户仍将在安装的应用程序列表和设置中的其他位置看到您的插件

使用此插件时,您还需要使用显式的
意图
(具有组件集的意图),以将其移出停止状态。在您使用显式的
意图与应用程序的某个组件交谈之前,插件中的任何内容都不会运行(例如,清单注册的接收者)

如果我创建了一个自定义意图,我如何使主应用程序知道系统中已经安装了一个分组到新意图中的新包

那不是一个有效的英语句子。我将把它解释为:

我如何知道用户何时安装插件

您可以查看以了解何时安装新应用。在这一点上,你可以通过这样或那样的方式确定新安装的应用程序是否是你的插件

可以在静默状态下下载并安装到设备中

这是不可能的,除非是在根设备上或通过特殊的系统应用程序。否则,用户将参与插件的安装

我可以创建一个安装时用户看不到的apk吗?因此,它不提供独立发射的可能性

如果您的意思是这样的话,您可以拥有一个没有活动的应用程序,该应用程序具有
启动器
。用户仍将在安装的应用程序列表和设置中的其他位置看到您的插件

使用此插件时,您还需要使用显式的
意图
(具有组件集的意图),以将其移出停止状态。在您使用显式的
意图与应用程序的某个组件交谈之前,插件中的任何内容都不会运行(例如,清单注册的接收者)

如果我创建了一个自定义意图,我如何使主应用程序知道系统中已经安装了一个分组到新意图中的新包

那不是一个有效的英语句子。我将把它解释为:

我如何知道用户何时安装插件


您可以查看以了解何时安装新应用。此时,您可以通过这样或那样的方式确定新安装的应用程序是否是您的插件。

您可以从清单文件中删除以下内容以进行所需的活动

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

对于所需的活动,您可以从清单文件中删除以下内容

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>


为我的英语道歉。完美的答案,这正是我想要的。谢谢为我的英语道歉。完美的答案,这正是我想要的。谢谢