Abrufen von Dateipfad und Dateiname des ausgewählten Galeriebilds in Android
Ich erstelle eine App, die ein ausgewähltes Bild aus der Galerie hochlädt und auf einen Webservice hochlädt. Der Webservice erfordert den Dateinamen des ausgewählten Bildes sowie eine Base64-Codierung des Dateiinhalts. Ich habe es geschafft, dies mit einem fest codierten Dateipfad zu erreichen. Ich kämpfe jedoch darum, den richtigen Dateipfad für das Bild zu finden. Ich habe im Internet gelesen und habe diesen Code, aber er funktioniert bei mir nicht:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
String[] projection = {MediaStore.Images.Media.DATA};
try {
Cursor cursor = getContentResolver().query(selectedImageUri, projection, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(projection[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Log.d("Picture Path", picturePath);
}
catch(Exception e) {
Log.e("Path Error", e.toString());
}
}
}
Ich erhalte diesen Fehler:
java.lang.NullPointerException
BEARBEITEN
Ich habe vergessen zu erwähnen, dass ich Kitkat benutze. Es sieht so aus, als ob mein Problem mit KitKat zusammenhängt. Ich habe Folgendes gefunden (siehe unten), was mir geholfen hat, meine App zum Laufen zu bringen:
Die Android-Galerie in KitKat gibt unterschiedliche Uri für Intent.ACTION_GET_CONTENT zurück