FileProvider IllegalArgumentException

  • Hallo,


    ich habe ein Problem mit dem FileProvider.


    Ich habe zuerst versucht das Bild im Internen Speicher der App zu speichern, bis ich hier gelesen habe das es nicht geht.
    https://android-developers.de/…ht=FileProvider#post20618


    Jetzt versuche ich das Bild auf der sdcard zu speichern, ohne das es in der Gallerie landet.


    Ich habe dieses Beispiel befolgt: https://developer.android.com/training/camera/photobasics


    Der este Part funktioniert auch bei mir, also ich starte die Kamera und habe in onActivityResult zugriff auf das Bitmap.
    Nur landet hier auch ein Bild in der Gallerie, das möchte ich aber nicht, das Bild soll nur in der App sichtbar sein.
    Also habe ich den Part Save the full-size photo im Beispiel getestet. (Mit FileProvider)


    Ich bekomme aber immer diese Meldung (wird in FileProvider.getUriForFile ausgelöst):
    java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/de.domain.app/files/bilder/jpeg_20180727_140424_2091066294.jpg


    Die Kamera startet aus einem Fragment.


    Hier mein Code:


    Code: provider_paths.xml
    <?xml version="1.0" encoding="utf-8"?>
    <paths xmlns:android="http://schemas.android.com/apk/res/android">
        <files-path name="bilder" path="Android/data/de.domain.app/files" />
    </paths>

    Gruss Eddi

  • Hi du startest doch die Kamera mit startActivityForResult arber eine Result Mthode sehe ich nicht.
    Zb. “protected void onActivityResult(int requestCode, int resultCode, Intent data)”



    In dieser kommt eigentlich das Ergebnis an.
    Bei kleinen Bildern kannst du sie meistens aus dem Result holen, grosse werden als Link übergeben.


    den Provieder brauchst du um mit den Link die Datei zubekommen.

  • Hi jogimuc,


    ich habe eine onActivityResult, habe sie nur vergessen zu zeigen. :whistling:


    Ich komme hier auch vorbei wenn ich ohne FileProvider arbeite.
    Ich brauche aber das ganze Bild also in der vollen auflösung, in der Anleitung steht das ich den FileProvider dazu brauche.
    Aber wenn ich es so mache bekomme ich eine Fehlermeldung.


    Also wenn ich diese Funktion aufrufe:


    Java
    Uri photoURI = FileProvider.getUriForFile(getActivity(),
                                "de.domain.app.fileprovider",
                                photoFile);

    java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/de.domain.app/files/bilder/jpeg_20180728_171909_856373984.jpg


    Gruss Eddi

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!