본문 바로가기
AndroidStudio

Uri를 절대경로로 바꿔서 리턴시켜주는 메소드

by EUN-JI 2023. 9. 6.

//Uri -- > 절대경로로 바꿔서 리턴시켜주는 메소드
    String getRealPathFromUri(Uri uri){
        String[] proj= {MediaStore.Images.Media.DATA};
        CursorLoader loader= new CursorLoader(this, uri, 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;
    }


//여러개의 파일 Uri -- > 절대경로들로 바꿔서 리턴시켜주는 메소드
ArrayList<String> getRealPathFromUri2(Uri uri){
        String [] projection = {MediaStore.Images.Media.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.MediaColumns.RELATIVE_PATH};
        String orderBy = MediaStore.Images.Media.DATE_MODIFIED;
        Cursor cursor = getContentResolver().query(uri , projection, null , null , orderBy + " DESC");
        String absolutePathOfImage;
        ArrayList<String> ImagesList = new ArrayList<>();
        int columnIndexData = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
        while (cursor.moveToNext()){
            absolutePathOfImage = cursor.getString(columnIndexData);
            ImagesList.add(absolutePathOfImage);
        }
        return ImagesList;
    }