studio programacion herramientas fundamentos con avanzado aplicaciones android pdf uri filepath

programacion - manual de android en pdf



¿Cómo obtener la ruta del archivo desde URI? (2)

Aquí está la respuesta a la pregunta aquí

En realidad, debemos obtenerlo del ContentProvider de aplicación de cámara compartible.

EDITAR Copiando la respuesta que funcionó para mí

private String getRealPathFromURI(Uri contentUri) { String[] proj = { MediaStore.Images.Media.DATA }; CursorLoader loader = new CursorLoader(mContext, contentUri, proj, null, null, null); Cursor cursor = loader.loadInBackground(); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String result = cursor.getString(column_index); cursor.close(); return result;

}

Esta pregunta ya tiene una respuesta aquí:

Por favor encuentra mi código a continuación. Necesito obtener la ruta del archivo del documento pdf, seleccionado por el usuario desde la tarjeta SD. El problema es que el URI.getPath () devuelve:

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

La ruta correcta es :

/sdcard/my Report.pdf

Tenga en cuenta que busqué en stackoverflow pero encontré el ejemplo de cómo obtener el filePath de imagen o video, ¿ no hay un ejemplo de cómo obtener el archivo en el caso de PDF ?

Mi código, NO todo el código, pero solo la parte en 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 por favor ayudarme a obtener la ruta correcta de URI?


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

debe devolverle el camino correcto

EDITAR

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

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