Невозможно открыть загруженные файлы после переустановки приложения.Android

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

Сообщение Anonymous »

Недавно я разработал приложение, которое загружает PDF-файлы с сервера и сохраняет их в локальном хранилище.
Я могу открыть файл, если не удалю приложение. Если я переустановлю приложение, я не смогу открыть файл.
Кроме того, мне не нужен доступ к другим папкам, поскольку я нацеливаюсь только на папку (папку, которая будет создана) в папке загрузок.
Я пробовал использовать различные методы, такие как медиамагазин или что-то новое, но не смог решить проблему.
fun openPdfIntent(filePath: File, context: Context) {

Log.i("Pdf", "openPdfIntent: ${filePath.absolutePath} ")
val pdfIntent = Intent(Intent.ACTION_VIEW)
val path =
FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".provider", filePath)
pdfIntent.setDataAndType(
path,
"application/pdf"
)
pdfIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
try {
if (filePath.canRead()) {
Log.i("Pdf", "openPdfIntent: exists and open")
context.startActivity(pdfIntent)

} else {
pdfIntent.setDataAndType(
filePath.toUri(),
"application/pdf"
)
pdfIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
Log.i("Pdf", "openPdfIntent: Doesn't exists ")
}
} catch (e: Exception) {
Toast.makeText(context, "Please Install Pdf Viewer", Toast.LENGTH_SHORT).show()
if (filePath.exists()) {
filePath.delete()
Log.i("Pdf", "openPdfIntent: Deleted ")
}
}
}

//function to download files.

fun onDownload(
index: Int,
url: String,
unitName: String,
subjectName: String,
context: Context,
) {
viewModelScope.launch(IO) {
val kDownloader = KDownloader.create(context)
withContext(
IO
) {

this.async {

val req = kDownloader.newRequestBuilder(
url,
getFileDirectory(context).path + "/KIET PDFS/$subjectName",
"${subjectName}_${unitName}.pdf"
).build()
kDownloader.enqueue(req,
onStart = {
Log.i("Downloads", "onDownload: Started for file $unitName.pdf")

downloadStatus[index] = downloadStatus[index].copy(
downloadProgress = DownloadProgress.Running
)
},
onCompleted = {
Log.i("Downloads", "onDownload: Success for $unitName.pdf ")
downloadStatus[index] = downloadStatus[index].copy(
downloadProgress = DownloadProgress.Success
)
}, onError = {
Log.i("Downloads", "onDownload: Error $it")
downloadStatus[
index
] = downloadStatus[index].copy(
downloadProgress = DownloadProgress.Failed
)
}

)
}.await()

}

}

}

fun getFileDirectory(context: Context): File {
return if (Build.VERSION.SDK_INT



file_paths.xml










Подробнее здесь: https://stackoverflow.com/questions/783 ... ng-the-app
Ответить

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

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

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

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

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