2011-12-16 19 views
5

Quiero abrir un archivo PDF almacenado en la memoria interna de Mobile ... Estoy tratando de pasar la ruta del archivo a la URI ... pero mantener mostrándome este error "la ruta del archivo no es válido" pero estoy seguro de que estoy poniendo el camino correcto ..Lectura de PDF almacenado en la memoria interna (La ruta de archivo no es válida)

targetFile=new File("/data/data/package Name/app_mydir/test.pdf"); 

      } 

     Intent intent; 
     intent = new Intent(Intent.ACTION_VIEW); 
     intent.setDataAndType(Uri.fromFile(targetFile), "application/pdf"); 


       startActivity(intent); 
+0

¿Cómo se guarda el archivo? Generalmente, los archivos de datos terminan dentro de una carpeta llamada "archivos" en el directorio de su aplicación, no en la raíz. – FoamyGuy

+0

estoy usando este directorio = getBaseContext(). GetDir ("mydir", Context.MODE_PRIVATE); \t \t \t} \t \t Archivo file1 = new File (directory, PdfName); – Reham

+0

reemplace "getBaseContext()" con "YourActivityName.this". También es probable que no pueda usar MODE_PRIVATE si está tratando de pasar el archivo a otra aplicación. – FoamyGuy

Respuesta

0

comprobar la salida de

targetFile.exists();

Si esto devuelve cierto, entonces es bueno que vaya, de lo contrario, algo está mal en su camino.

+0

lo intenté ... es cierto ... no sé cuál es incorrecto con el camino ... – Reham

+0

Probablemente deberías publicar un stacktrace completo. –

8

Los archivos en el directorio de almacenamiento interno de su aplicación son privados por defecto para su aplicación. Lo que significa que ninguna aplicación PDF-Reader puede leer ese archivo (ya que no se ejecuta con sus aplicaciones pid - no se otorga permiso de lectura).

Debe guardar ese PDF con permisos de lectura explícitos para otras aplicaciones usando la bandera Context.MODE_WORLD_READABLE. Vea el data storage documentation cómo hacer eso exactamente.

También utilice Context.openFileOutput() y Context.openFileInput() para leer y escribir archivos en el directorio interno (como se menciona en los documentos anteriores). No codifique caminos como este, podrían cambiar.

Cuestiones relacionadas