Получить путь к файлу и имя файла выбранного изображения галереи в 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