Fehler bei NoNonsens File Picker

  • Hey liebes Forum,
    Ich würde gerne mit dem NoNonsens File Picker einen Folder auswählen. Laut Webseite sollte das eigentlich kein Problem sein. Ich habe nun den Code von der Webseite (http://spacecowboy.github.io/NoNonsense-FilePicker/ ) übernommen und angewendet. Hier der Code:


    Java
    try{
      Intent selectDirectoyIntent = new Intent(getApplicationContext(), FilePickerActivity.class);  
      selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
      selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false);
      selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR);  
      selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_START_PATH, Environment.getExternalStorageDirectory().getPath());
      startActivityForResult(selectDirectoyIntent, DIR_REQUEST_CODE); }
    catch (Exception e){ ...}

    Dazu habe ich die onActivityResult überschrieben, wie auf der Seite angegeben. Dieser Code wird jedoch nicht einmal aufgerufen, da eine Exception geworfen wird:


    Mir sagt die Fehlermeldung jetzt aber leider garnichts. Ist in der runtergeladenen Bibliothek ein Fehler?
    Hoffe ihr könnt mir weiter helfen :)
    alles liebe,
    Leo

  • Hi wieso schreibst du den Code in die onActivityResult Methode? Diese wird aufgreufen wenn du vom FilePicker zurück kommst.
    der Aufrufende Intent gehört in dein Klicklistner oder onCreat.
    ist auch in der Anleitung beschrieben.

    Zitat

    Starting the picker in your app
    // This always works Intent i = new Intent(context, FilePickerActivity.class); // This works if you defined the intent filter // Intent i = new Intent(Intent.ACTION_GET_CONTENT); // Set these depending on your use case. These are the defaults. i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false); i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false); i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE); // Configure initial directory by specifying a String. // You could specify a String like "/storage/emulated/0/", but that can // dangerous. Always use Android's API calls to get paths to the SD-card or // internal memory. i.putExtra(FilePickerActivity.EXTRA_START_PATH, Environment.getExternalStorageDirectory().getPath()); startActivityForResult(i, FILE_CODE);

    onActivityResult ist eine Callback Methote und da hast du so meine ich keinen Zugriff auf getApplicationContext() wenn du den brauchst dann speichere den Context in eine Variablen global in der Klasse. soviel nur am Rande.
    Der Aufruf muss trotzdem in der App erfolgen.

  • Hey Jogimuc,
    danke für deine schnelle Antwort.
    Ich habe wohl leider an der falschen Stelle mit Erklärungen gespart, tut mir leid.
    Der Code bei nem ButtonClick aufgerufen. Der Intent wird normal ausgeführt und der FilePicker wird gestartet. Dort kann ich auch durch das File System navigieren. Wähle ich dann aber einen Ordner oder ein File aus, dann bekomme ich die oben genannte Fehlermeldung.
    Die onActivityResult Methode habe ich von der Webseite kopiert. Diese wird aber nie aufgerufen, da die App vorher bereits abstürzt.
    Liebe Grüße,
    Leo

  • hast du auch den Code in die Manifestdatei Übernommen?



    <provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${applicationId}.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
    android:name="android.support.FILE_PROVIDER_PATHS"
    android:resource="@xml/nnf_provider_paths" />
    </provider>



    https://github.com/spacecowboy/NoNonsense-FilePicker

Jetzt mitmachen!

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