From 019346d18839d966c04fa41093c6f64de3a8e3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar?= Date: Sun, 21 Feb 2016 21:00:14 +0100 Subject: [PATCH] Fix for CB-10625 getDocumentId was crashing in some cases. Now, in case it crashes, it will use the original uri to query. --- src/android/FileHelper.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/android/FileHelper.java b/src/android/FileHelper.java index 59f890e..f772061 100644 --- a/src/android/FileHelper.java +++ b/src/android/FileHelper.java @@ -80,18 +80,25 @@ public class FileHelper { public static String getRealPathFromURI_API19(Context context, Uri uri) { String filePath = ""; try { - String wholeID = DocumentsContract.getDocumentId(uri); - // Split at colon, use second item in the array - String id = wholeID.indexOf(":") > -1 ? wholeID.split(":")[1] : wholeID.indexOf(";") > -1 ? wholeID - .split(";")[1] : wholeID; + String id = null; + Uri myUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;; + try { + String wholeID = DocumentsContract.getDocumentId(uri); + + // Split at colon, use second item in the array + id = wholeID.indexOf(":") > -1 ? wholeID.split(":")[1] : wholeID.indexOf(";") > -1 ? wholeID + .split(";")[1] : wholeID; + } catch (Exception e) { + myUri = uri; + } String[] column = { MediaStore.Images.Media.DATA }; // where id is equal to String sel = MediaStore.Images.Media._ID + "=?"; - Cursor cursor = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, column, + Cursor cursor = context.getContentResolver().query(myUri, column, sel, new String[] { id }, null); int columnIndex = cursor.getColumnIndex(column[0]);