Получить ActivityInfo для экземпляра действия - PullRequest
3 голосов
/ 18 марта 2011

У меня есть экземпляр Activity в классе помощника, и я пытаюсь получить атрибуты из его записи в файле AndroidManifest.xml.

Я могу получить список всех ActivityInfoэкземпляры, но как мне указать целевой для моего приложения?

Экземпляр действия не находится в том же пакете, что и вспомогательный класс, и не определен в том же манифесте (вспомогательный класс - это библиотека, включенная впроект приложения).

Что у меня пока что:

Activity activity = //the instance
String applicationPackage = activity.getApplicationInfo().packageName;
PackageInfo info = activity.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
for (ActivityInfo activityInfo : info.activities) {
    if (/* activityInfo applies to our activity instance */) {
        return activityInfo.someProperty;
    }
}

Ответы [ 2 ]

4 голосов
/ 18 марта 2011

Мое понимание вашего вопроса: вам необходимо получить информацию о конкретном действии в вашем приложении.

В настоящее время вы используете getPackageInfo для получения информации о пакете от менеджера пакетов, но вы неЭто необходимо сделать, если вы заботитесь только об одном действии в Приложении.Вместо этого вы можете использовать getActivityInfo, если вы знаете полное имя действия и используете имя компонента, например: com.example.myapp/com.example.myapp.myactivity

PackageManager Docs

0 голосов
/ 03 июля 2017

Если вы хотите получить информацию о текущей активности

ActivityInfo info = getPackageManager (). GetActivityInfo (getComponentName (), 0);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...