Wie kann ich meine Pdf in Android 12 speichern?

  • Antworten:1
Testflon - Lol
  • Forum-Beiträge: 1

28.09.2022, 09:23:08 via Website

Hallo zusammen, ich benutze die Library itextpdf um Pdf zu erstellen.

Nun möchte ich gerne die Pdf in den Öffentlichen Order: "Dokumente" speichern,

Ich weiß ich muss mit ContentValues arbeiten, um in der neuere Version von Android die Pdf abzuspeichern.

Nun bekomme ich es nicht hin.

    try {
        ContentValues values = new ContentValues();
        values.put(MediaStore.MediaColumns.DISPLAY_NAME, etName.getText().toString() + "-Rechung.pdf");       //file name
        values.put(MediaStore.MediaColumns.MIME_TYPE, "application/pdf");
        values.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOCUMENTS + "/PDF");

        Uri uri = getActivity().getContentResolver().insert(MediaStore.Files.getContentUri("external"), values);

        OutputStream outputStream = getActivity().getContentResolver().openOutputStream(uri);

        outputStream.write();

        outputStream.close();


        //Dokument wird erstellt und benannt
        PdfWriter.getInstance(document, new FileOutputStream(String.valueOf(uri)));

        //Das Dokument soll eine DIN-A4-Format bekommen
        document.setPageSize(PageSize.A4);
        document.open();


        Toast.makeText(getActivity(), "File created successfully", Toast.LENGTH_SHORT).show();
    } catch (IOException e) {

        Toast.makeText(getActivity(), "Fail to create file", Toast.LENGTH_SHORT).show();
    }

Mit freundlichen Grüßen

Lenny

Kommentieren
Jokel
  • Forum-Beiträge: 1.547

30.09.2022, 11:26:36 via Website

Hallo

Ich weiß ich muss mit ContentValues arbeiten, um in der neuere Version von Android die Pdf abzuspeichern.

Wie kommst du darauf?
Ab Android 11 zugriff auf den Storage nur noch mit SAF (storage access framework)
Scoped Storage

https://developer.android.com/about/versions/11/privacy/storage

https://medium.com/swlh/sample-for-android-storage-access-framework-aka-scoped-storage-for-basic-use-cases-3ee4fee404fc

https://android-doc.github.io/guide/topics/providers/document-provider.html

Hilfreich?
Kommentieren