Hilfe! Nicht alle auf einmal!
Beiträge von ECharismatisch
-
-
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:
Java: MainActivity.java
Alles anzeigenpublic String getRealPathFromURI_API19(Context context, Uri uri){ String result; Cursor cursor = getContentResolver().query(uri, null, null, null, null); if (cursor == null) { // Source is Dropbox or other similar local file path result = uri.getPath(); } else { cursor.moveToFirst(); int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); result = cursor.getString(idx); cursor.close(); } return result; }
Doch auch das funktioniert immer mal wieder nicht. Daher mische ich es mitJava: MainActivity.javaprivate 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.