Как вызвать одно приложение для Android из другого приложения для Android - PullRequest
7 голосов
/ 28 апреля 2010

Я хочу вызвать одно приложение для Android из другого приложения

Я попробовал несколько примеров , но они не работают для меня, я получаю ошибку разбора пакета.

Предположим, есть два приложения: Приложение1 и Приложение2

Я хочу вызвать Приложение2 из Приложения1

Вот пример кода для этого:

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i);

Здесь fileName = "file://data/data/package_name/files/Application1.apk";

Ответы [ 3 ]

5 голосов
/ 25 ноября 2010

Я думаю, этот код поможет:

Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("<packet name>", "<class name>"));
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT);

if(list.size() > 0)
{
 Log.i("Log", "Have application" + list.size());
 startActivity(intent);
}
else
{
    Log.i("Log", "None application");
}
1 голос
/ 30 апреля 2010

Вы пытаетесь запустить приложение, которое не установлено? Похоже, вы пытаетесь запустить приложение, передавая app1 расположение файла .apk для app2 на SD-карте - это не сработает. ОС Android будет знать, как вызвать app2 через Intent s только после того, как пользователь установит его (учтите риски безопасности, если вы можете просто вызвать любой произвольный код, находящийся на карте SD).

Предполагая, что app1 и app2 установлены, посмотрите файл AndroidManifest.xml для app2. Этот файл будет указывать, на какие Intent s он будет отвечать.

см. http://developer.android.com/guide/topics/intents/intents-filters.html#npex для хорошего примера.

Пожалуйста, покажите нам файл AndroidManifest.xml для app2, если вам нужна дополнительная помощь.

0 голосов
/ 01 июня 2012
Intent i4=new Intent(Intent.ACTION_MAIN);

PackageManager manager = getPackageManager();

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name

i4.addCategory(Intent.CATEGORY_LAUNCHER);

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