Как получить доступ к внешнему хранилищу в Android 10? - PullRequest
1 голос
/ 14 октября 2019

Согласно обновлению Android 10 , чтение и запись из внешнего хранилища ограничены, даже если у нас есть

WRITE_EXTERNAL_STORAGE

Я хочу переместить мойPDF-файл из внутреннего хранилища (частное из моего приложения для Android) в папку DOWNLOADS. Я перепробовал так много подходов, но ничего не получилось, и в интернете нет никакой помощи, связанной с доступом к внешнему хранилищу в Android 10.

Изменения конфиденциальности в Android 10 |Разработчики Android https://developer.android.com

1 Ответ

0 голосов
/ 14 октября 2019

надеюсь, что приведенный ниже код поможет вам решить проблему и скопировать любой файл из внутреннего на внешнее хранилище.

fun copyPdfFrom(context: Context, sourceFile: File, destinationURIString: String) {
                val destinationURI = Uri.parse(destinationURIString)
                try {
                    val bufferedInputStream = BufferedInputStream(FileInputStream(sourceFile.absoluteFile))
                    val outPutStream = context.contentResolver.openOutputStream(destinationURI)!!
                    var len = 0
                    val brr = ByteArray(1024)

                    while ((bufferedInputStream.read(brr, 0, brr.size).also { len = it }) != -1) {
                        outPutStream.write(brr, 0, len)
                    }
                    outPutStream.flush()
                    outPutStream.close()
                    bufferedInputStream.close()
                }
                catch (e: Exception) {
                    e.printStackTrace()
                }
            }
...