Я хочу запустить установленный пакет из моего приложения для Android. Я предполагаю, что это возможно, используя намерения, но я не нашел способ сделать это. Есть ли ссылка, где найти информацию?
java
android
android-intent
Бастиан
источник
источник
Ответы:
Если вы не знаете основной вид деятельности, то для запуска приложения можно использовать имя пакета.
источник
CATEGORY_INFO
, а затем основное действие в категорииCATEGORY_LAUNCHER
. ВозвращаетЯ знаю, что на это ответили, но вот как я реализовал нечто подобное:
Еще лучше, вот метод:
Удален повторяющийся код:
источник
Я нашел решение. В файле манифеста приложения я нашел имя пакета: com.package.address и имя основного действия, которое я хочу запустить: MainActivity Следующий код запускает это приложение:
источник
источник
Вот мой пример запуска сканера штрих-кода / QR-кода из моего приложения, если кто-то находит это полезным
источник
Редактировать в зависимости от комментария
В некоторых версиях - как предлагается в комментариях - выбрасываемое исключение может быть другим.
Таким образом, решение ниже немного изменено
Оригинальный ответ
Несмотря на хороший ответ, есть довольно простая реализация, которая обрабатывает, если приложение не установлено. Я делаю это так
Замените «applicationId» на пакет, который вы хотите открыть, например com.google.maps и т. Д.
источник
PackageManager.getLaunchIntentForPackage(...)
метод возвращает нулевое значение , если имя пакета не распознается. Это не бросаетPackageManager.NameNotFoundException
. Смотрите здесь .startActivity(null)
на эмуляторе Android 10, и он бросает,NullPointerException
а неPackageManager.NameNotFoundException
.startActivity(Intent intent)
метода, когда ему дается нольIntent
и что заставляет вас так говорить? Андроида разработчиков документации только утверждает , что она будет бросатьсяActivityNotFoundException
.источник
Если вы хотите открыть определенную активность другого приложения, мы можем использовать это.
Если вам нужно другое приложение, вместо того, чтобы показывать Toast, вы можете показать диалоговое окно. С помощью диалогового окна вы можете пригласить пользователя в Play-Store для загрузки необходимого приложения.
источник
com.android.settings.fuelgauge.PowerUsageSummary
это просто деятельность, псевдоним изcom.android.settings.Settings$PowerUsageSummaryActivity
, и он был удален в Android Pie , так что я на вершину правки , чтобы сделать этот ответ костюм Pie. Обратите внимание, что он также совместим со старой версией, см. Фиксацию AOSP 10 ноября 2011 г. af9252849fd94c1f2859c56a4010900ea38a607e и т. Д.Если вам известны данные и действие, на которое реагирует установленный пакет, вы просто должны добавить эту информацию в свой экземпляр намерения перед его запуском.
Если у вас есть доступ к AndroidManifest другого приложения, вы можете увидеть всю необходимую информацию там.
источник
Шаги, чтобы начать новую деятельность следующим образом:
1. получить намерение для пакета
2. Если намерение является нулевым, перенаправить пользователя в playstore
3. Если намерение не является пустым, открытым действием
источник
Можно запустить деятельность приложения, используя в
Intent.setClassName
соответствии с документами.Пример:
Чтобы открыть его за пределами текущего приложения, добавьте этот флаг перед началом намерения.
Соответствующий ответ здесь
источник
источник