2012-01-16 36 views
34

Encuentra mi código a continuación. Necesito obtener la ruta del archivo del documento pdf, seleccionado por el usuario desde la tarjeta SD. La cuestión es que el URI.getPath() devuelve:¿Cómo obtener la ruta del archivo desde el URI?

/file:///mnt/sdcard/my%20Report.pdf/my Report.pdf 

La ruta correcta es:

/sdcard/my Report.pdf 

Tenga en cuenta que He buscado en stackoverflow, pero encontré el ejemplo de conseguir el rutaArchivo de imagen o video, no hay ningún ejemplo de cómo obtener el archivo en caso de PDF?

Mi código, no todo el código, pero sólo la parte pdf:

public void openPDF(View v) 
{ 
    Intent intent = new Intent(); 
    //intent.setType("pdf/*"); 
    intent.setType("application/pdf"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Select Pdf"), SELECT_PDF_DIALOG); 
} 
public void onActivityResult(int requestCode, int resultCode, Intent result) 
{ 
    if (resultCode == RESULT_OK) 
    { 
     if (requestCode == SELECT_PDF_DIALOG) 
     { 
      Uri data = result.getData(); 
      if(data.getLastPathSegment().endsWith("pdf")) 
      { 
       String pdfPath = data.getPath(); 
      } 
      else 
      { 
       CommonMethods.ShowMessageBox(CraneTrackActivity.this, "Invalid file type"); 
      }    
      } 
     } 
} 

Pueden algunos ayudarme por favor la forma de obtener la ruta correcta a partir de URI?

+0

Aquí está la respuesta correcta a la pregunta [echar un vistazo] [1] [1]: http://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore – sheetal

Respuesta

21
File myFile = new File(uri.toString()); 
myFile.getAbsolutePath() 

debe u devolver la ruta correcta

EDITAR

Como @Tron sugirió el código de trabajo es

File myFile = new File(uri.getPath()); 
myFile.getAbsolutePath() 
+3

No tengo el ARCHIVO aquí, necesito obtenerlo del Uri. –

+0

ver la respuesta editada –

+0

Su regreso: /content:/com.quickoffice.mx.samsung/file%3A%2F%2F%2Fmnt%2Fsdcard%2FMy%2520Report.pdf/My%20Report.pdf?MIME-TYPE= aplicación% 2Fpdf –

4

Aquí está la respuesta a la pregunta here

En realidad tenemos que obtenerlo de la ContentProvider compartible de la cámara Aplicación

Cuestiones relacionadas