1

AndroidManifest.xml中,可以定義多個<activity-alias>元素。但是,java類不建議可以在運行時定義這些別名。是否可以在運行時添加新的ActivityAliases?

是否可以在運行時嚮應用程序添加新的活動別名?

+0

你需要什麼? – pskink

+1

竊取用戶的銀行信息 – Armand

+0

[**'ComponentName' **](http://developer.android.com/reference/android/content/ComponentName.html)可以是您的新ActivityAlias在激活方面 – Elltz

回答

2

您不能動態地嚮應用程序添加新的活動別名或編輯清單文件,因爲這將違反Android安全模型。清單文件的一個目的是開發人員必須定義哪些活動是應用程序的一部分以及它們被允許執行什麼操作。 只需閱讀有關簽署應用的Android文檔即可。 Android應用必須先通過私鑰進行簽名,然後才能通過Google Play發佈。如果您可以更改.apk文件中的任何應用程序文件,那麼簽名將不再正確,並且驗證將失敗。

+0

我同意。無論如何,你爲什麼需要這樣做?別名的全部內容是在運行時爲程序提供靈活性。 +1 –

0

從您在評論中給出的說明中可以看出,您實際上並不想或不需要在運行時定義這些別名。

你實際上想要做的是定義大量的別名(每個都有自己的圖標和文本),但是隻能同時激活其中的一個。當一個特定的用戶運行你的應用程序時,你可以通過PackageManager.setComponentEnabledSetting來確定它們與哪個品牌相關聯,並使該別名處於活動狀態。您可能會遇到一些緩存圖標的啓動器的問題,並且可能會在應用的啓用活動發生變化時感到困惑,但任何問題都會短暫消失,並且一般在下次手機重新啓動時就會消失(並且啓動器應用程序會重新啓動)。

如果你想添加另一個品牌到你的應用程序,那麼你需要發佈一個新的版本到商店中,並有另一個別名,但沒關係,因爲新品牌的所有用戶都將進入該應用程序這是第一次,因此必須去商店安裝應用程序。

+0

嗨zmarties,感謝您的反應 - 我認爲您已經確定了這些問題,但誤解了我的優先級。我想避免每次添加或刪除品牌時都必須發佈新版本。除此之外,品牌'A'的用戶不應該因爲我們現在支持品牌'X'而更新他的應用程序。 – Armand

相關問題