Подтвердить что ты не робот

Вызов приложения из другого приложения

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

Я пробовал эту проблему часами, но я не могу найти ничего, что сработает. В основном потому, что рекомендации по поиску имени пакета и имени класса действительно плохие.

Через cmd и adb я смог найти информацию о приложении, которое я бы хотел назвать: пакет:/data/app/com.soundcloud.android-1.apk=com.soundcloud.android(что именно то, что он сказал в окне cmd.)

Я пробовал что-то вроде этого:

Intent i = new Intent();
i.setClassName("/data/app/com.soundcloud.android-1.apk", "com.soundcloud.android");
startActivity(i);

Но мое приложение просто падает. Я использовал приведенный выше код, потому что кто-то сказал, что это может вызвать приложение:

Intent i = new Intent();
i.setClassName("<package_name>","<Class Name(with package name)>");
startActivity(i);

Кто-нибудь знает, что на самом деле писать?

P.S.: мое собственное приложение не нуждается в какой-либо информации о том, что происходит в вызываемом приложении.

4b9b3361

Ответ 1

Используйте PackageManager, чтобы получить намерение для пакета:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.example.package");
startActivity(intent);

Ответ 2

Документация здесь.

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

Если у вас нет кода, вы можете проверить, как узнать класс из apk с помощью этого.