FileError {code: 6, сообщение: «NO_MODIFICATION_ALLOWED_ERR»} - PullRequest
0 голосов
/ 17 мая 2019

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

Я запустил file.checkDir & file.checkFile , чтобы подтвердить, получает ли он путь и вернул ли он истину.

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

Выдает эту ошибку:

FileError {code: 6, message: “NO_MODIFICATION_ALLOWED_ERR”}

Хотя я упомянул разрешения:

android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE

Я не уверен в том, что я делаю здесь неправильно.Спасибо за помощь.

this.file.removeFile(path, fileName)

Ожидается - файл должен быть удален по указанному пути

Actual - Файл не удаляется по указанному пути

1 Ответ

0 голосов
/ 17 мая 2019

Из sdk21, если я не ошибаюсь, недостаточно указать разрешение в манифестах. Вы должны запросить его во время выполнения и проверить, есть ли он у вас в любое время, когда вы собираетесь его использовать. Что-то в этом роде

        const val INTERET = Manifest.permission.INTERNET
        const val READ = Manifest.permission.READ_EXTERNAL_STORAGE
        const val WRITE = Manifest.permission.WRITE_EXTERNAL_STORAGE
        const val LOCATION_COARSE = Manifest.permission.ACCESS_COARSE_LOCATION
        const val LOCATION_FINE = Manifest.permission.ACCESS_FINE_LOCATION
        const val PHONE = Manifest.permission.CALL_PHONE

        fun granted(activity: Activity, vararg permission: String): Boolean {
            val list = ArrayList<String>()
            for (s in permission)
                if (ActivityCompat.checkSelfPermission(activity, s) != PackageManager.PERMISSION_GRANTED)
                    list.add(s)
            if (list.isEmpty())
                return true
            ActivityCompat.requestPermissions(activity, list.toArray(arrayOfNulls<String>(list.size)), 1)
            return false
        }

и в разрешении проверки кода:

if(granted(this, READ, WHRITE)
    this.file.removeFile(path, fileName)
else 
    //do smth if you have no permission

хорошо, чтобы вы реагировали, если пользователю отказано в разрешении. Вы можете сделать это в Activity.onRequestPermissionsResult

...