Ответ 1
Как узнать, доступно ли Intent:
-
Попробуйте называть Intent и иметь дело с
ActivityNotFoundException
, если он недоступенIntent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(path, "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(OpenPdf.this, "No Application Available to View PDF", Toast.LENGTH_SHORT).show(); }
или
-
Запросить диспетчер пакетов, чтобы узнать, есть ли это раньше времени:
PackageManager packageManager = getPackageManager(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setType("application/pdf"); List list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); if (list.size() > 0) { intent.setDataAndType(path, "application/pdf"); startActivity(intent); }
Как передать параметры в приложение или узнать его возможности: