1

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

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

4

2 回答 2

2

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

于 2015-07-04T11:31:23.943 回答
0

从您在评论中给出的说明来看,您似乎实际上并不希望或不需要在运行时定义这些别名。

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

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

于 2015-07-06T15:10:09.840 回答