是否可以在运行时添加新的ActivityAliases?

时间:2015-07-03 13:19:07

标签: java android android-activity android-manifest android-activity-alias

AndroidManifest.xml中,可以定义多个<activity-alias>元素。但是,ActivityAlias java类并不表示可以在运行时定义这些别名。

是否可以在运行时向应用添加新的活动别名?

2 个答案:

答案 0 :(得分:2)

您无法动态地向应用添加新活动别名或编辑清单文件,因为这会违反Android安全模型。清单文件的一个目的是开发人员必须定义哪些活动是应用程序的一部分以及允许它们执行的操作。 只需阅读有关签署应用程序的Android文档即可。 Android应用必须先使用私钥进行签名,然后才能通过Google Play发布。如果您能够更改.apk文件中的任何应用程序文件,则签名将不再正确,验证将失败。

答案 1 :(得分:0)

根据您在评论中提供的说明,您似乎并不想要或者需要在运行时定义这些别名。

你真正想要做的是定义很多别名(每个别名都有自己的图标和文字),但只有一个有效。当特定用户运行您的应用程序时,您可以通过PackageManager.setComponentEnabledSetting确定与其关联的品牌,并使该别名处于活动状态。您可能遇到一些缓存图标的启动器出现问题,并且当应用程序的启用活动发生变化时可能会感到困惑,但任何问题都会短暂存在,并且通常会在下次电话重新启动时消失(因此重启启动器应用程序) )。

如果您想在您的应用中添加其他品牌,那么您需要向商店发布新版本,其中包含其他别名,但这很好,因为新品牌的所有用户都将来临第一次到应用程序,因此无论如何都必须去商店安装应用程序。