작성
·
2.4K
0
안드로이 Q에서 Download폴더에 파일 어떻게 읽고/쓰나요?
Android Q에서 저장은 아래와 같이 해서 되기는 하나 덮어쓰기는 안되고
val resolver = contentResolver
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, "sdFile.dat")
put(MediaStore.MediaColumns.MIME_TYPE, "plain/text")
put(MediaStore.MediaColumns.RELATIVE_PATH, "Download")
}
val uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, contentValues)
var output = resolver.openOutputStream(uri!!)
var dos = DataOutputStream(output)
dos.writeInt(200)
dos.writeDouble(55.55)
dos.writeUTF("반갑습니다.")
dos.flush()
dos.close()
textView.text = "저장 완료"
읽기는 에러가 발생합니다.
에러 메시지 : open failed: ENOENT (No such file or directory)
val resolver = contentResolver
val contentValues = ContentValues().apply {
put(MediaStore.MediaColumns.DISPLAY_NAME, "sdFile.dat")
put(MediaStore.MediaColumns.MIME_TYPE, "plain/text")
put(MediaStore.MediaColumns.RELATIVE_PATH, "Download")
}
val uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, contentValues)
var input = resolver.openInputStream(uri!!)
var dis = DataInputStream(input)
var value1 = dis.readInt()
var value2 = dis.readDouble()
var value3 = dis.readUTF()
dis.close()
textView.text = "value1 : ${value1}\n"
textView.append("value2 : ${value2}\n")
textView.append("value3 : ${value3}\n")
답변 2
1
안드로이드 10 부터 외부 저장소에 대한 정책이 변경되어 코드가 달라졌습니다. 본 강좌는 안드로이드 8버전을 타겟으로 만들어졌기 때문에 이 부분에 대해 아직 갱신이 되어 있지 않은데요 조만간 업데이트를 할 예정입니다.
https://developer.android.com/training/data-storage/files/external-scoped?hl=ko
위의 링크는 안드로이드 공식 링크인데요 이 부분을 참고해주시기 바랍니다.
0