Вызовите другую заявку из моего приложения - PullRequest
1 голос
/ 10 января 2012

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

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

Uri uri = Uri.parse("file:///sdcard/");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
intent.setType("application/pdf");
startActivity(intent);
return true;

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

Ответы [ 3 ]

3 голосов
/ 10 января 2012

Вам нужно будет позвонить Неявные намерения

Из документации:

Неявные намерения не указали компонент; вместо этого они должны включить достаточно информации для системы, чтобы определить, какой из Для этого лучше всего использовать доступные компоненты.

Эти намерения могут быть инициированы при условии любого действия , типа или категории информации

Например, вы хотите открыть браузер Activity и не знаете имя класса Activity, вы будете использовать что-то вроде этого:

Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(in);

Другой пример : вы не знаете класс Gallery Activity, вы будете называть его, используя Implicit Intent, например:

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
1 голос
/ 10 января 2012

Здесь звонок Наслаждайтесь кодированием ....

    Intent res = new Intent();
    String mPackage = "com.ReachOut";
    String mClass = ".splash1";
    res.setComponent(new ComponentName(mPackage,mPackage+mClass));
    startActivity(res);
0 голосов
/ 10 января 2012

Если конкретное приложение менее важно, и вам просто нужно что-то, что будет отображать ваш контент, вы также можете полностью пропустить имя компонента.Просто установите действие, данные и (необязательно) тип в намерении и позвольте ОС выполнить всю работу.

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(/*your data uri*/);
intent.setType(/*your data's MIME type*/);
startActivity(intent);

Это намерение будет обрабатываться некоторым приложением, которое зарегистрировало намерения с помощью действия просмотра исоответствующий тип MIME.Это неявное намерение, как упоминал Адил.

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