Запуск определенного приложения в Android - PullRequest
3 голосов
/ 18 января 2011

Я знаю, как загрузить файл PDF в Android.Но если установлено более одного средства просмотра PDF, Android отображает список на выбор.Я хочу загрузить свой файл PDF с помощью специального средства просмотра PDF (скажем, DroidReader).Как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 января 2011

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

Вместо этого постройте свойНамерение, как обычно, но используйте Intent.setPackage (), чтобы указать, что система должна искать только в имени пакета нужного приложения для соответствующих действий.То есть:

Intent intent = new Intent(Intent.ACTION_VIEW, uriToView);
intent.setPackage("com.package.name.of.droidreader");
startActivity(intent)
1 голос
/ 18 января 2011

Затем укажите полное название занятия:

    Intent intent = new Intent();
    ComponentName comp = new ComponentName("com.package.name.of.droidreader", "com.package.name.of.droidreader.DroidReader");
    intent.setComponent(comp);
    startActivity(intent);

Чтобы узнать имя пакета и активность, вы можете взглянуть на вывод adb logcat: когда вы открываете действие, оно регистрируется там. И, конечно, настройте намерение правильно, чтобы DroidReader знал, какой файл открыть.

Наконец, но важно, вы должны окружить метод startActivity блоком try-catch, перехватывающим ActivityNotFoundException (я уверен, что большинство телефонов не будет иметь этого конкретного приложения).

...