Android: ¿Cómo obtener un URI de archivo de un URI de contenido?

En mi aplicación, el usuario debe seleccionar un archivo de audio que luego maneja la aplicación. El problema es que para que la aplicación haga lo que quiero que haga con los archivos de audio, necesito que el URI esté en formato de archivo. Cuando uso el reproductor de música nativo de Android para buscar el archivo de audio en la aplicación, el URI es un URI de contenido, que se ve así:

content://media/external/audio/media/710

Sin embargo, usando la popular aplicación de administración de archivos Astro, obtengo lo siguiente:

file:///sdcard/media/audio/ringtones/GetupGetOut.mp3

Este último es mucho más accesible para mí para trabajar, pero, por supuesto, quiero que la aplicación tenga funcionalidad con el archivo de audio que elija el usuario, independientemente del programa que use para navegar por su colección. Entonces mi pregunta es, ¿hay alguna manera de convertir lacontent:// estilo URI en unafile:// URI? De lo contrario, ¿qué me recomendarías para resolver este problema? Aquí está el código que llama al selector, como referencia:

Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);

Hago lo siguiente con el URI de contenido:

m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);

Entonces haga algunas cosas de FileInputStream con dicho archivo.

Respuestas a la pregunta(5)

Su respuesta a la pregunta