Nuke Olaf - Log Store

[Android] 안드로이드 - uri 를 통해 파일의 이름과 크기 가져오기 본문

Android

[Android] 안드로이드 - uri 를 통해 파일의 이름과 크기 가져오기

NukeOlaf 2020. 4. 28. 23:10

안드로이드의 보안정책이 강화되면서, 다른 앱에 있는 파일의 RealPath 를 가져올 수 없게 되었다.

즉 File:// ~~~ 이런식으로 돌아오던 파일 주소(real path)가
content:// ~~ 이런식으로 돌아오면서 파일주소를 사용한 기능을 사용하기가 어려워졌다.

아래의 코드는 uri 를 통해 content Resolver 를 통해 파일의 이름과 크기를 가져온다.

* returnIntent 는 다른앱에서 사진을 선택했을때 onActivityResult 로 돌아온 Intent 이다.

returnIntent.data?.let { returnUri ->
    context.contentResolver.query(returnUri, null, null, null, null)
}?.use { cursor ->
    val nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)
    val sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE)
    cursor.moveToFirst()
    val name = cursor.getString(nameIndex) // 이미지 이름
    val size = cursor.getLong(sizeIndex).toString() // 이미지 사이즈
}

 

참고 사이트>>>

안드로이드 developers : https://developer.android.com/training/secure-file-sharing/retrieve-info#kotlin

Comments