마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

갤러리 이미지의 절대경로를 구하고싶습니다.

0 추천

현재

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            try {
                System.out.println("고양이10");

                InputStream in = getContentResolver().openInputStream(data.getData());
                Bitmap img = BitmapFactory.decodeStream(in);

                in.close();

                Uri img_link = data.getData();
                System.out.println("고양" + getRealPathFromURI(img_link));
                img_url = img_link.getPath();
                //String ims = getRealPathFromURI(img_link);
                //getRealImagePath(img_link);

            } catch (Exception e) {

            }
        } else if (resultCode == RESULT_CANCELED) {
            Toast.makeText(this, "사진 선택 취소", Toast.LENGTH_LONG).show();
        }
    }
}

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private String getRealPathFromURI(Uri contentUri)
{
    if (contentUri.getPath().startsWith("/storage"))
    {
        return contentUri.getPath();
    }
    String id = DocumentsContract.getDocumentId(contentUri).split(":")[1];
    String[] columns = { MediaStore.Files.FileColumns.DATA };
    String selection = MediaStore.Files.FileColumns._ID + " = " + id;Cursor cursor = getContentResolver().query(MediaStore.Files.getContentUri("external"), columns, selection, null, null);
    try {int columnIndex = cursor.getColumnIndex(columns[0]); if (cursor.moveToFirst())
    {
        return cursor.getString(columnIndex);
    }
    }
    finally {cursor.close();
    }
    return null;
}

위의 갤러리에서 이미지를 선택하면 그 이미지의 uri를 구하고 그것으로 절대경로를 구하고싶은데 retrun하는 값이 계속 null로만 나오더라고요. 이게 이미지를 가져오는 방식에서 잘못된건가요>

manifest는

<uses-permission android:name="android.permission"/>
<uses-permission android:name="android.permission.INTERNET" />

users-permission을 이렇게 중복해서 써도 괜찮나요>

 

young210 (320 포인트) 님이 2020년 8월 24일 질문

1개의 답변

0 추천

https://c10106.tistory.com/5163  참조해 보세요.

<uses-permission android:name="android.permission"/>

이건 지우시기 바랍니다. 아무 소용없는 코드네요...

 

비뢰광 (7,400 포인트) 님이 2020년 8월 25일 답변
...