Чтение pdf-файла с SD-карты

Я хочу прочитать файл pdf, хранящийся на моей SD-карте, я попытался использовать этот фрагмент

File file = new File(Environment.getExternalStorageDirectory() + "/vvveksperten" + "/ypc.pdf"); PackageManager packageManager = getPackageManager(); Intent testIntent = new Intent(Intent.ACTION_VIEW); testIntent.setType("application/pdf"); List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(file); intent.setDataAndType(uri, "application/pdf"); startActivity(intent); 

Но это дало мне ошибку.

 ERROR/AndroidRuntime(2611): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/vvveksperten/ypc.pdf typ=application/pdf } 

Пожалуйста, проверьте, есть ли у вас какое-либо приложение для чтения PDF-файлов, я думаю, что это не так ..

Просто используйте этот код,

 private void viewPdf(Uri file) { Intent intent; intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(file, "application/pdf"); try { startActivity(intent); } catch (ActivityNotFoundException e) { // No application to view, ask to download one AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("No Application Found"); builder.setMessage("Download one from Android Market?"); builder.setPositiveButton("Yes, Please", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Intent marketIntent = new Intent(Intent.ACTION_VIEW); marketIntent .setData(Uri .parse("market://details?id=com.adobe.reader")); startActivity(marketIntent); } }); builder.setNegativeButton("No, Thanks", null); builder.create().show(); } } 

Если какое-либо приложение для чтения PDF не доступно, то этот код загружает PDF-ридер с рынка Android, но убедитесь, что на вашем устройстве установлено предустановленное приложение для Android . Поэтому я думаю, попробуйте это на устройстве Android, а не на эмуляторе.

Следуйте этой ссылке для https://github.com/jblough/Android-Pdf-Viewer-Library для чтения PDF-файлов без использования сторонних приложений.

  File file = new File(“/sdcard/read.pdf”); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),”application/pdf”); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); 

В отличие от устройств iOS многие (или, возможно, большинство) устройства Android не имеют стандартный PDF Viewer. Вот почему вы получаете Исключение. Нет намерения, зарегистрированного с помощью права IntentFilter.

Также см. Этот другой вопрос SO: есть ли у android встроенный просмотрщик PDF? ,

Решение прост: установите средство просмотра PDF как Adobe Reader из Google Play.