Создать папку во внешнем Android-хранилище (nativescript) - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь создать папку "my" во внешнем хранилище android нативного приложения.

Я получаю эту ошибку:

> "ERROR Error: Uncaught (in promise): Error: Failed to create new java
> File for path /storage/emulated/0/Download/my"

Я использую этот код длясоздайте папку "my" в папке "/ storage / emulated / 0 / Download / my":

    const env = android.os.Environment;
    this.androidDownloadsPath = path.join(env.getExternalStoragePublicDirectory(
        env.DIRECTORY_DOWNLOADS).toString()
    );
    this.myFolderPath = path.join(this.androidDownloadsPath, 
    this.myFolder = Folder.fromPath(this.myFolderPath);

Разрешения на чтение и запись находятся в файле android-manifest.xml (по умолчанию).

1 Ответ

0 голосов
/ 28 сентября 2018

На уровне Android SDK API> 23 необходимо дополнительно запросить разрешения ЧТЕНИЕ / ЗАПИСЬ. Пользователь должен принять их вручную (диалог). Для этого используйте плагин «nativescript-permissions».

После этого можно создать папку и файлы в /sdcard

 const directory = android.os.Environment.getExternalStorageDirectory().getAbsolutePath().toString();
 const path1 = path.join(directory, "MyFolder");
 const folder = Folder.fromPath(path1);

 let file = folder.getFile(filename);
        file.writeText(JSON.stringify(content) || "some random content")
            .then(result => {
                file.readText()
                    .then(res => {
                        log("Successfully saved in " + file.path);
                        console.log("read file: " + file.readTextSync());
                    });

            }).catch(err => {
                console.log(err);
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...