Я знаю имя файла, и он находится в каталоге загрузки. Я могу прочитать файл в своем приложении, если файл хранится в каталоге «файлов», специфичном для приложения, но я хочу иметь возможность читать из каталога загрузки без использования средства выбора файлов. Так как я знаю имя файла, который хочу иметь возможность читать напрямую.
Вот пример кода
Код: Выделить всё
package com.example.reading_excel
import android.Manifest
import android.content.Context
import android.os.Build
import android.os.Environment
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat
import androidx.core.content.PermissionChecker
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.File
import java.io.FileInputStream
import java.io.IOException
@RequiresApi(Build.VERSION_CODES.Q)
fun readExcelFile(context: Context, fileName: String) {
// Check for permission if necessary (Android 13 and below)
if (Build.VERSION.SDK_INT \
val workbook = XSSFWorkbook(fileInputStream)
val sheet1 = workbook.getSheet("Handicap Index & Course Play...")
for ( i in 1..numPlayers) {
PlayerData[i].name = sheet1.getRow(i).getCell(2).stringCellValue
}
workbook.close()
}
} catch (e: IOException) {
e.printStackTrace()
Toast.makeText(context, "Error reading Excel file", Toast.LENGTH_SHORT).show()
}
}
Код: Выделить всё
FileInputStream(excelFile).use { fileInputStream ->
Главное здесь заключается в том, что ошибка связана не с поиском файла, а с скорее его открытие вызывает ошибку разрешений. Итак, это проблема с разрешениями, но я не уверен, где и как изменить разрешения. У меня есть
Код: Выделить всё
Подробнее здесь: https://stackoverflow.com/questions/791 ... -directory
Мобильная версия