Запуск определенного приложения в Android

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

2 ответа

Решение

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

    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 (Я уверен, что у большинства телефонов не будет этого конкретного приложения).

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

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

Intent intent = new Intent(Intent.ACTION_VIEW, uriToView);
intent.setPackage("com.package.name.of.droidreader");
startActivity(intent)
Другие вопросы по тегам