File pdf aperti per Android

Sto sviluppando un'applicazione Android e devo aprire alcuni file.

Questo è il mio codice che utilizza l'intento:

  • come effettuare l'amministratore di dispositivi di applicazione in android?
  • Android: verticale 3d listview
  • Cattura quando l'applicazione Android è andata sullo background
  • Comprensione di lanciatore personalizzato android
  • Android Studio Aggiornamento di Android 5.0 SDK: "Una cartella non è stata spostata".
  • Android: Come posso get le coordinate xy all'interno di un'image / ImageView?
  • public class FacturaActivity extends Activity { (...) public void downloadInvoice(View view) { File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file),"application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(intent); } } 

    Il file si trova nella directory principale della scheda SD e posso aprirlo manualmente.

    Problema

    L'applicazione viene chiusa quando arriva a startActivity (intent). Penso che il problema sia nel file AndroidManifest.xml, ma non so come metterlo correttamente.

    AndroidManifest.xml

     <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="###.MyApplication" > <!--cant show complete name--> <activity android:name="###.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".FacturaActivity" > </activity> </application> 

    LogCat

     07-03 15:49:13.094: E/AndroidRuntime(1032): FATAL EXCEPTION: main 07-03 15:49:13.094: E/AndroidRuntime(1032): java.lang.IllegalStateException: Could not execute method of the activity (...) 07-03 15:49:13.094: E/AndroidRuntime(1032): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/201209_F2012212782.PDF typ=application/pdf flg=0x40000000 } 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivityForResult(Activity.java:2817) 07-03 15:49:13.094: E/AndroidRuntime(1032): at android.app.Activity.startActivity(Activity.java:2923) 

    Puoi aiutarmi a completare AndroidManifest? O come posso aprire quel pdf?

  • L'altezza di ListView riempie l'integer schermo, anche se impostato come wrap_content
  • Controllare se un particolare object JSON è disponibile o less
  • Implementazione della navigazione "Drilldown" nell'applicazione UI di Android
  • ViewPager all'interno del frammento con margini e trasformatore di pagina non rendere correttamente
  • errore: pacchetto PermissionUtils non esiste
  • Android: Barra di azione personalizzata, Come utilizzare l'intera width?
  • 2 Solutions collect form web for “File pdf aperti per Android”

    Il problema è che non esiste un'applicazione installata per gestire l'apertura del PDF. Dovresti usare il Chooser Intent, come:

     File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/"+ filename); Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.fromFile(file),"application/pdf"); target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); Intent intent = Intent.createChooser(target, "Open File"); try { startActivity(intent); } catch (ActivityNotFoundException e) { // Instruct the user to install a PDF reader here, or something } 
     String dir="/Attendancesystem"; public void displaypdf() { File file = null; file = new File(Environment.getExternalStorageDirectory()+dir+ "/sample.pdf"); Toast.makeText(getApplicationContext(), file.toString() , Toast.LENGTH_LONG).show(); if(file.exists()) { Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.fromFile(file), "application/pdf"); target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); Intent intent = Intent.createChooser(target, "Open File"); try { startActivity(intent); } catch (ActivityNotFoundException e) { // Instruct the user to install a PDF reader here, or something } } else Toast.makeText(getApplicationContext(), "File path is incorrect." , Toast.LENGTH_LONG).show(); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.