Определите, можно ли запустить конкретное действие в приложении - PullRequest
1 голос
/ 09 июня 2010

Приложения могут иметь любое количество запускаемых действий.Я знаю, как получить список этих действий с помощью PackageManager.

Есть ли способ определить, какие действия можно запустить с помощью startActivity?

Например, приложение Documents To Go имеет различные действиякоторый запустит Word, Excel, Powerpoint, PDF и т. д. Я могу запустить все эти файлы просто отлично.

Однако, он также содержит некоторые действия, которые я не могу запустить с помощью startActivity ..Если я пытаюсь сделать это, я получаю исключение SecurityException.

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

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Создайте намерение с имеющимися у вас параметрами / данными, а затем используйте метод менеджера пакетов resolActivity () , чтобы проверить действие, которое будет обрабатывать ваш запрос.разрешения с использованием checkPermission () метода PackageManager.

HTH!

0 голосов
/ 21 марта 2011

Это, вероятно, старая шляпа для вас, но вы можете использовать этот метод:

getPackageManager().getLaunchIntentForPackage(
                packageName);

Вот способ получить имена пакетов установленных приложений:

final PackageManager pm = getPackageManager();

        List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);

        for (ApplicationInfo packageInfo : packages) {

            Log.d(TAG, "Installed package :" + packageInfo.packageName);
            Log.d(TAG,
                    "Launch Activity :"
                            + pm.getLaunchIntentForPackage(packageInfo.packageName));

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