precios libro electrónico electronico electronic ebooks ebook definicion books android file pdf android-manifest

libro - Android archivo PDF abierto



libro electronico (2)

El problema es que no hay una aplicación instalada para manejar la apertura del PDF. Deberías usar el Selector de Intentos, así:

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 }

Estoy desarrollando una aplicación de Android y tengo que abrir algunos archivos.

Este es mi código con intención:

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); } }

El archivo está en el directorio raíz de la tarjeta SD y puedo abrirlo manualmente.

Problema

La aplicación se cierra cuando llega a startActivity (intención). Creo que el problema está en el archivo AndroidManifest.xml, pero no sé cómo ponerlo correctamente.

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)

¿Me pueden ayudar a completar AndroidManifest? ¿O cómo puedo abrir ese pdf?


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(); }