Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @SuppressLint("NewApi")
- public static String getFilePath(Context context, Uri uri) throws URISyntaxException {
- String selection = null;
- String[] selectionArgs = null;
- // Uri is different in versions after KITKAT (Android 4.4), we need to
- if (Build.VERSION.SDK_INT >= 19 && DocumentsContract.isDocumentUri(context.getApplicationContext(), uri)) {
- if (isExternalStorageDocument(uri)) {
- final String docId = DocumentsContract.getDocumentId(uri);
- final String[] split = docId.split(":");
- return Environment.getExternalStorageDirectory() + "/" + split[1];
- } else if (isDownloadsDocument(uri)) {
- final String id = DocumentsContract.getDocumentId(uri);
- uri = ContentUris.withAppendedId(
- Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
- } else if (isMediaDocument(uri)) {
- final String docId = DocumentsContract.getDocumentId(uri);
- final String[] split = docId.split(":");
- final String type = split[0];
- if ("image".equals(type)) {
- uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
- } else if ("video".equals(type)) {
- uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
- } else if ("audio".equals(type)) {
- uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
- }
- selection = "_id=?";
- selectionArgs = new String[]{
- split[1]
- };
- }
- }
- if ("content".equalsIgnoreCase(uri.getScheme())) {
- String[] projection = {
- MediaStore.Images.Media.DATA
- };
- Cursor cursor = null;
- try {
- cursor = context.getContentResolver()
- .query(uri, projection, selection, selectionArgs, null);
- int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- if (cursor.moveToFirst()) {
- return cursor.getString(column_index);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if ("file".equalsIgnoreCase(uri.getScheme())) {
- return uri.getPath();
- }
- return null;
- }
- public static boolean isExternalStorageDocument(Uri uri) {
- return "com.android.externalstorage.documents".equals(uri.getAuthority());
- }
- public static boolean isDownloadsDocument(Uri uri) {
- return "com.android.providers.downloads.documents".equals(uri.getAuthority());
- }
- public static boolean isMediaDocument(Uri uri) {
- return "com.android.providers.media.documents".equals(uri.getAuthority());
- }
- public static boolean createDirIfNotExists() {
- boolean ret = true;
- File folder = new File(Environment.getExternalStorageDirectory() + "/Modda");
- if (!folder.exists()) {
- folder.mkdir();
- Log.e("TravellerLog :: ", "Problem creating Image folder");
- ret = false;
- }
- /*File file = new File(Environment.getExternalStorageDirectory(), "/Modda");
- if (!file.exists()) {
- if (!file.mkdirs()) {
- Log.e("TravellerLog :: ", "Problem creating Image folder");
- ret = false;
- }
- }*/
- return ret;
- }
- public static Uri resIdToUri(Context context, int resId) {
- return Uri.parse(Constant.ANDROID_RESOURCE + context.getPackageName()
- + Constant.FORESLASH + resId);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement