Чтение файла из каталога загрузкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Чтение файла из каталога загрузки

Сообщение Anonymous »

Я пытаюсь прочитать файл Excel из каталога загрузки на моем телефоне.
Я знаю имя файла, и он находится в каталоге загрузки. Я могу прочитать файл в своем приложении, если файл хранится в каталоге «файлов», специфичном для приложения, но я хочу иметь возможность читать из каталога загрузки без использования средства выбора файлов. Поскольку я знаю имя файла, я хочу иметь возможность прочитать его напрямую.
Вот мой пример кода:

Код: Выделить всё

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 ->
который не работает из-за ошибки EACCESS при попытке прочитать файл.
Ключевым моментом здесь является то, что ошибка не включена. обнаружение файла, а не его открытие, вызывает ошибку разрешений. Итак, это проблема с разрешениями, но я не уверен, где и как изменить разрешения. У меня есть в файле AndroidManifest.xml.


Подробнее здесь: https://stackoverflow.com/questions/791 ... -directory
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»