valido puedo porque para mostrar leer formato error descargar como celular archivos aplicacion abrir android pdf workflow-activity
https://code.google.com/p/mupdf/downloads/detail?name=mupdf-1.2-source.zip&can=2&q=

android - porque - no puedo abrir archivos pdf en mi pc



Android: abra un pdf desde mi aplicaciĆ³n usando el visor de pdf incorporado (9)

Esta fue mi pregunta original:

Quiero poder abrir un archivo pdf en mi aplicación usando la aplicación de visor de PDF integrada de Android, pero no sé cómo iniciar otras aplicaciones. Estoy seguro de que tengo que llamar a la actividad de inicio, simplemente no sé cómo identificar la apertura de la aplicación y cómo pasar el archivo a esa aplicación específica.

Alguien tiene una pista?

Acabo de enterarme de que el visor de PDF que tengo en mi teléfono está hecho en realidad por HTC y que Adobe acaba de lanzar su visor de PDF de Android (que es genial). Entonces, la nueva pregunta es: ¿cómo verifico que el usuario ha instalado el visor de adobe y cómo abro el archivo en esa aplicación desde mi aplicación?


Además de los marcados como respuesta, necesitaría estos permisos en el archivo manifest.xml

**

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

**


Android tiene un marco incorporado de Android 5.0 / Lollipop, se llama PDFRenderer . Si puede asumir que sus usuarios tienen Android 5.0, probablemente sea la mejor solución.

Hay un ejemplo oficial en el sitio para desarrolladores de Google:

http://developer.android.com/samples/PdfRendererBasic/index.html

No es compatible con la anotación u otras características más avanzadas; para aquellos a quienes realmente les gusta usar un Intento para abrir una aplicación completa, o insertar un SDK como mupdf .

(Descargo de responsabilidad: muy ocasionalmente trabajo en mupdf).


Aunque este es un tema muy antiguo, aquí hay una solución para abrir un archivo PDF que está en el activo / carpeta con una aplicación externa de lector de PDF. Utiliza un proveedor de contenido personalizado: https://github.com/commonsguy/cwac-provider

Al usar esto, puede definir cualquier archivo que se proporcione desde la carpeta assets / or res / raw /.

¡Intentalo! La mejor y más fácil solución que encontré hasta ahora.


Puede determinar mediante programación si existe una aplicación adecuada en el dispositivo del usuario, sin detectar excepciones.

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("path-to-document")); intent.setType("application/pdf"); PackageManager pm = getPackageManager(); List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0); if (activities.size() > 0) { startActivity(intent); } else { // Do something else here. Maybe pop up a Dialog or Toast }


También me enfrenté al mismo problema cuando estaba tratando de mostrar PDF en un dispositivo Android y finalmente terminé con la solución (integración de la biblioteca de PDF de terceros)

https://github.com/JoanZapata/android-pdfview

mientras que he probado varias bibliotecas para este listado a continuación que también están funcionando,

https://github.com/jblough/Android-Pdf-Viewer-Library

& mupdf que viene con el sabor ndk ( https://code.google.com/p/mupdf/downloads/detail?name=mupdf-1.2-source.zip&can=2&q= ) y necesita extraerlo con NDK y luego usarlo en aplicación como jar o java, etc. bonito artículo para explicar el uso de esta biblioteca @ http://dixitpatel.com/integrating-pdf-in-android-application/


Agregar FLAG_GRANT_READ_URI_PERMISSION

Intent intent = new Intent(Intent.ACTION_VIEW) Uri outputFileUri = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + ".provider", file); intent.setDataAndType(outputFileUri, "application/pdf"); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Intent in = Intent.createChooser(intent, "Open File"); startActivity(in);

también agregue provider_paths.xml en la carpeta res -> xml y necesita agregar el código siguiente en los manifiestos

<application> <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" tools:replace="android:authorities"> <meta-data tools:replace="android:resource" android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider> </application>


AFAIK, Adobe no ha documentado ningún Intents público que quiera que usen los desarrolladores.

Puede probar una Intent ACTION_VIEW con un ACTION_VIEW apunta al archivo (ya sea en la tarjeta SD o MODE_WORLD_READABLE en su tienda de archivos local de la aplicación) y un tipo MIME de "application/pdf" .


FileFinalpath = SdCardpath + "/" + Filepath + Filename; File file = new File(FileFinalpath); if (file.exists()) { Uri filepath = Uri.fromFile(file); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(filepath, "application/pdf"); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); try { startActivity(intent); } catch (Exception e) { alert.showAlertDialog(PDF_Activity.this, "File Not Started...","File Not Started From SdCard ", false); Log.e("error", "" + e); } } else { alert.showAlertDialog(PDF_Activity.this, "File Not Found...","File Not Found From SdCard ", false); }


private void loadDocInReader(String doc) throws ActivityNotFoundException, Exception { try { Intent intent = new Intent(); intent.setPackage("com.adobe.reader"); intent.setDataAndType(Uri.parse(doc), "application/pdf"); startActivity(intent); } catch (ActivityNotFoundException activityNotFoundException) { activityNotFoundException.printStackTrace(); throw activityNotFoundException; } catch (Exception otherException) { otherException.printStackTrace(); throw otherException; } }