Запуск определенного приложения в 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)