1

В AndroidManifest.xml можно определить несколько элементов <activity-alias>. Однако класс java класса ActivityAlias не предполагает, что эти псевдонимы могут быть определены во время выполнения.Можно ли добавлять новые 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

Смежные вопросы