В начале этой недели я задавал аналогичный вопрос, но до сих пор не понимаю, как получить список всех установленных приложений, а затем выбрать одно для запуска.
Я пробовал:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
и это только показывает приложение, которое предустановлено или может запускать ACTION_MAIN
тип Intent.
Я также знаю, что могу использовать PackageManager
для получения всех установленных приложений, но как мне использовать это для запуска определенного приложения?
android
android-intent
2Real
источник
источник
Ответы:
Ниже приведен код для получения списка действий / приложений, установленных на Android:
Вы получите все необходимые данные
ResolveInfo
для запуска приложения. Вы можете проверитьResolveInfo
Javadoc здесь .источник
Вот более чистый способ использования
PackageManager
Более подробная информация здесь http://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/
источник
Еще один способ фильтрации системных приложений (работает на примере king9981):
источник
Вот хороший пример:
источник
Получение списка установленных несистемных приложений
источник
Чтобы отфильтровать приложения, основанные на sytem:
источник
Чтобы получить все установленные приложения, вы можете использовать диспетчер пакетов.
Для запуска вы можете использовать имя пакета
Для более подробной информации вы можете прочитать этот блог http://codebucket.co.in/android-get-list-of-all-installed-apps/
источник
Вы можете найти список установленных приложений на Android-устройстве, используя следующий код: «packageInfo» содержит информацию об установленных приложениях на устройстве. мы можем получить Intent для приложения, установленного из объекта packageinfo и, используя startactivity (намерение), можем запустить приложение. это зависит от вас, как вы организуете пользовательский интерфейс Listview или Gridview. поэтому при щелчке по событию вы можете получить объект намерения и запустить намерение действия.
источник
У меня было требование отфильтровать системные приложения, которые пользователь на самом деле не использует (например, «com.qualcomm.service», «update services» и т. Д.). В конечном итоге я добавил еще одно условие для фильтрации списка приложений. Я только что проверил, имеет ли приложение «намерение запуска».
Итак, результирующий код выглядит так ...
источник
Если в одном пакете несколько пусковых установок, в коде есть проблема. Например: на LG Optimus Facebook для LG, MySpace для LG, Twitter для LG содержит одно имя пакета SNS, и если вы используете выше, SNS будет повторяться. После нескольких часов исследований я пришел с кодом ниже. Кажется, работает хорошо.
источник
@Jas: у меня больше нет этого кода, но я нашел что-то близкое Я сделал это для поиска «компонентов» моего приложения, это просто действия с определенной категорией.
Я прокомментировал ту часть, где он получает название активности, но это довольно просто.
источник
Чистое решение, успешно фильтрующее системные приложения
Идея этого решения заключается в том, что основная активность каждого системного приложения не имеет собственного значка активности . Этот метод дает мне отличный результат:
источник
источник
У меня есть другое решение:
источник
Получить все приложения:
Проверьте, установлено ли приложение, затем откройте:
источник
Вы можете использовать это:
источник
источник