2012-03-19 2 views
3

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

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 } 
+0

Есть ли на вашем телефоне сторонние api, чтобы читать pdf ???? –

ответ

5

Пожалуйста, проверьте, что устройство является любым приложением для чтения 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, а не на эмуляторе.

0

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

Также см. Этот другой вопрос: Does android have a built-in PDF viewer?.

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

1
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); 
Смежные вопросы