Получить путь к файлу и имя файла выбранного изображения галереи в Android
Я создаю приложение, которое загружает выбранное изображение из галереи и загружает его в веб-сервис. Веб-сервису требуется имя файла выбранного изображения плюс кодировка base64 содержимого файла. Мне удалось добиться этого с помощью жестко закодированного пути к файлу. Однако я изо всех сил пытаюсь получить реальный путь к файлу изображения. Я читал в Интернете и имею этот код, но он не работает для меня:
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());
}
}
}
Я получаю эту ошибку:
java.lang.NullPointerException
РЕДАКТИРОВАТЬ
Забыл упомянуть, что я использую Kitkat. Похоже, моя проблема связана с KitKat. Я нашел это (см. Ниже), которое помогло мне заставить мое приложение работать:
Галерея Android на KitKat возвращает разные Uri для Intent.ACTION_GET_CONTENT