Unterschiedliche Pfadformate vereinheitlichen

  • Ich möchte sowohl Bilder mit der Kamera aufnehmen, als auch Dateien mit dem Dateimanager laden.


    Doch leider unterscheiden sich die Pfadformate. Einmal steht content:// davor, dann etwas anderes. Und auch innerhalb der Dateien des Dateimanagers gibt es unterschiedliche Prefixe.


    Sehr schwul das Ganze.


    Mit welcher Funktion kann ich das vereinheitlichen, damit ich nur noch einen einheitlichen Pfadtyp habe und es keine Notfound-Fehler mehr gibt?


    Ich habe bereits etwas experimentiert und das hier eingebaut:



    Doch auch das funktioniert immer mal wieder nicht. Daher mische ich es mit

    Java: MainActivity.java
    private String getRealPathFromURI(Uri contentUri) {
            String[] proj = { MediaStore.Images.Media.DATA };
            CursorLoader loader = new CursorLoader(this, contentUri, proj, null, null, null);
            Cursor cursor = loader.loadInBackground();
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            String result = cursor.getString(column_index);
            cursor.close();
            return result;
        }

    Und jetzt funktionieren beide nicht mehr.


    Ich muß das vereinheitlichen.

  • Hi etwas genauer könntest du es schon beschreiben.
    Der Datei Manager wie mir scheint kommen die Daten aus einen content Provider da sind es meistens abstrakte Pfade und von der Cam müsstest du einen lokalen Pfad haben dann sehe ich noch was von Dropbox in denen Code.
    Erkläre erstmal richtig. Der erste Code ist doch schon mal gar nicht so schlecht.
    Übrigens so Sachen wie " ist alls so schwul hier" will hier bestimmt keiner hören. Du hast dir android programmierung selber rausgesucht.


    In "File" "Uri" Objekten kann man Pfade
    auch speichern.
    Bei content ist es meistens eine relativ Pfad Angabe wird oft von content Provider zurück gegeben. Deine Cam wird einen absoluten Pfad geben.

Jetzt mitmachen!

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