Текстовый файл не будет создан на SD-карте - PullRequest
1 голос
/ 09 ноября 2019

Я пытаюсь создать / записать текстовый файл в корневом каталоге SD-карты на моем телефоне с помощью FileWriter, но файл не создается (/ root / sdcard)

Попытка с использованием getExternalStorageDirectory() но это просто не работает. Я также добавил это в мой файл манифеста вне тега приложения:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Вот мой код для записи / создания файла:

private void writeToFile(String content) {
    try {
        File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/test.txt");

        if (!file.exists()) {
            file.createNewFile();
        }
        FileWriter writer = new FileWriter(file);
        writer.append(content);
        writer.flush();
        writer.close();
    } catch (IOException e) {
    }
}

Я ожидаю файл"test.txt" должен быть создан в каталоге SD-карты, но ничего не происходит. Также нет ошибок, файл просто не хочет создаваться.

1 Ответ

0 голосов
/ 10 ноября 2019

Исправлено путем вызова следующего в методе onCreate действия:

    public static void verifyStoragePermissions(Activity activity) {
    // Check if we have write permission
    int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);

    if (permission != PackageManager.PERMISSION_GRANTED) {
        // We don't have permission so prompt the user
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE
        );
    }
}
...