скачать файл с гугл-диска с ее именем

У меня есть (веб-просмотр) приложение kotlin

и страницы моего приложения (Google Drive), которые пользователи могут скачивать с него,

Я хочу, чтобы при загрузке пользователем файла с диска Google файл загружался на его имя

и скачать в фолдери, если он существует

Пример: файл требуется загрузить на Google диск: Google диск site \ mp3sound \ sound1.mp3

Если пользователь щелкнет ссылку (sound1) Google drive, файл загрузится в память устройства \ Downloads \ mp3sound \ sound1.mp3

Мое приложение (MainActivity)

        webview.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength ->
        ‏                //checking Runtime permissions
        ‏                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
        ‏                {
        ‏                    if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
        ‏                        //Do this, if permission granted
        ‏                        downloadDialog(url, userAgent, contentDisposition, mimetype)
        ‏
        ‏                    } else {
        ‏
        ‏                        //Do this, if there is no permission
        ‏                        ActivityCompat.requestPermissions(
        ‏                            this,
        ‏                            arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE),
        ‏                            1
        ‏                        )
        ‏
        ‏                    }
        ‏                } else {
        ‏                    //Code for devices below API 23 or Marshmallow
        ‏                    downloadDialog(url, userAgent, contentDisposition, mimetype)
        ‏
        ‏                }
        ‏            }
        ‏       
        ‏
        ‏        private fun downloadDialog(url:String, userAgent:String, contentDisposition:String, mimetype:String)
        ‏        {
        ‏            //getting file name from ur
        ‏            val filename = URLUtil.guessFileName(url, contentDisposition, mimetype)
        ‏            //Alertdialog
        ‏            val builder = AlertDialog.Builder(this@MainActivity)
        ‏            //title for AlertDialog
        ‏            builder.setTitle("تأكيد تحميل الملف")
        ‏            //message of AlertDialog
        ‏            builder.setMessage("سيتم تحميل الملف باسم\n $filename")
        ‏            //if YES button clicks
        ‏            builder.setPositiveButton("تحميل") { dialog, which ->
        ‏                //DownloadManager.Request created with url.
        ‏                val request = DownloadManager.Request(Uri.parse(url))
        ‏                //cookie
        ‏                val cookie = CookieManager.getInstance().getCookie(url)
        ‏                //Add cookie and User-Agent to request
        ‏                request.addRequestHeader("Cookie",cookie)
        ‏                request.addRequestHeader("User-Agent",userAgent)
        ‏                //Download is visible and its progress, after completion too.
        ‏                request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
        ‏                //DownloadManager created
        ‏                val downloadmanager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
        ‏                //Saving file in Download folder
        ‏                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"معهد الدين القيم/$filename")
        ‏                //download enqued
        ‏                downloadmanager.enqueue(request)
        ‏            }
        ‏            //If Cancel button clicks
        ‏            builder.setNegativeButton("إلغاء")
        ‏            {dialog, which ->
        ‏                //cancel the dialog if Cancel clicks
        ‏                dialog.cancel()
        ‏            }
        ‏
        ‏            val dialog:AlertDialog = builder.create()
        ‏            //shows alertdialog
        ‏            dialog.show()
        ‏
        ‏        }            ‏
        ‏
        ‏
‏ ‏


person bmsbms16    schedule 23.07.2020    source источник


Ответы (1)


У меня есть (веб-просмотр) приложение kotlin

Более того, мое приложение видит (Google диск) страницы, которые клиенты могут загружать с него,

Мне нужно при загрузке клиентом документа с гугл-диска запись скачивается на его имя

более того, скачайте в фолдери, если он существует

Модель: файл необходимо скачать на гугл диск: гугл диск сайт \ mp3sound \ sound1.mp3

В случае, если клиент нажимает на (звук1) интерфейс диска Google, запись загружается в память устройства \ Downloads \ mp3sound \ sound1.mp3

Мое приложение (MainActivity)

webview.setDownloadListener {url, userAgent, contentDisposition, mimetype, contentLength - ›

/ Проверка согласия среды выполнения

Если (Build.VERSION.SDK_INT ›= Build.VERSION_CODES.M)

‏ {

If (checkSelfPermission (Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {

/ Сделайте это, если согласие принято

DownloadDialog (url, userAgent, contentDisposition, mimetype)

} Else {

/ Сделайте это, если нет согласия

ActivityCompat.requestPermissions (

Это,

ArrayOf (Manifest.permission.WRITE_EXTERNAL_STORAGE),

‏ 1

‏ )

‏ }

} Else {

/ Код для гаджетов под API 23 или Marshmallow

DownloadDialog (url, userAgent, contentDisposition, mimetype)

‏ }

‏ }

Приватное развлечение downloadDialog (url: String, userAgent: String, contentDisposition: String, mimetype: String)

‏ {

/ Получение названия документа из ur

Val filename = URLUtil.guessFileName (url, contentDisposition, mimetype)

/ Alertdialog

Val производитель = AlertDialog.Builder (это @ MainActivity)

/ Title для AlertDialog

Builder.setTitle (تأكيد تحميل الملف)

/ Сообщение AlertDialog

Builder.setMessage (سيتم تحميل الملف باسم \ n $ filename)

/ Если нажимается кнопка ДА

person Micheal    schedule 23.07.2020
comment
что это за ответ? - person bmsbms16; 23.07.2020