pdf-файл не сохраняется/не создается во внутреннем

#java #android

Вопрос:

Я пытаюсь создать pdf-файл во внутренней памяти с помощью этого кода, но я не смог создать pdf-файл по каким-то неизвестным причинам у меня Android 11 в logcat нет ошибок, тост показывает успех, пожалуйста, помогите мне с кодом

MainActivity.java

 public class MainActivity extends AppCompatActivity {

    Button create_btn;
    File file;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        create_btn = findViewById(R.id.create_btn);


        ActivityCompat.requestPermissions(this, new String[]{
                Manifest.permission.WRITE_EXTERNAL_STORAGE}, PackageManager.PERMISSION_GRANTED);

        createPDF();

    }

    private void createPDF() {
        create_btn.setOnClickListener(view -> {
            PdfDocument myPdfDocument = new PdfDocument();
            Paint myPaint = new Paint();
            PdfDocument.PageInfo myPageInfo1 = new PdfDocument.PageInfo.Builder(250, 400, 1)
                    .create();
            PdfDocument.Page myPage1 = myPdfDocument.startPage(myPageInfo1);
            Canvas canvas = myPage1.getCanvas();
            canvas.drawText("Expert Laptops", 40, 50, myPaint);
            myPdfDocument.finishPage(myPage1);

            file = new File(MainActivity.this.getExternalFilesDir("/"), "firstPDF.pdf");

            try {
                myPdfDocument.writeTo(new FileOutputStream(file));
                Toast.makeText(MainActivity.this, "Sucessfull", Toast.LENGTH_SHORT).show();
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this, "Unsucessful", Toast.LENGTH_SHORT).show();
            }

            myPdfDocument.close();

        });
    }
}

Android Manifest

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

<application
        android:requestLegacyExternalStorage="true".../>
 

Спасибо

Комментарии:

1. Как вы проверили, есть ли файл там,?

2. Вещи в манифесте не нужны для этого места хранения

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

4. where it should be created Действительно, ни один файловый менеджер не может отобразить ваш a file = new File(MainActivity.this.getExternalFilesDir("/"), "firstPDF.pdf"); . Вы взглянули на стоимость file.getAbsolutePath() ? Это указывает вам путь к вашему файлу. Теперь найдите путь, а затем повторите попытку с помощью файловых менеджеров, а затем сообщите нам, как глубоко вы можете ввести этот путь к каталогу.

5. Спасибо blackapps, ваше предложение дало мне идею, поэтому я немного поиграл с кодом и указал путь, по которому я могу легко найти свой pdf-файл