mi objetivo principal es obtener la orientación de una imagen que obtengo de AWS, parte del código es obtener primero el imputStream para el cual necesito pasar el URI, estoy haciendo Uri.parse(url) para obtener el uri y cuando trato de obtener URI obtengo
java.io.FileNotFoundException: Sin proveedor de contenido
URL pasada:
https://xxx-2.amazonaws.com/YRINWoUKBOW97VXvpnRelWioT2r2/6d95054e-8a6c-4a61-a4ff-18f63aa187b4/1/thumbnail.png?X-Amz-Algorithm=AWS4-HMAC-xx&X-Amz-Date=20220221T203050Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Credential=AKIAJGEUAZB7E5XX6NPA%2F20220221%2Feu-west-2%2Fs3%xx&X-Amz-Signature=d3839d925efc6fffff417e25af1e6bad28ed10ef27d1c4460d20470error
java.io.FileNotFoundException: sin proveedor de contenido: https://xxx2.amazonaws.com/YRINWoUKBOW97VXvpnRelWioT2r2/6d95054e-8a6c-4a61-a4ff-18f63aa187b4/1/thumbnail.png?X-Amz-Algorithm=AWS4-HMAC-xxx&X- AMZ-FAT = 20220221T203050Z & X-AMZ-SIIGNEDHEADERS = Host y X-AMZ-caduca = 1800 & X-AMZ-Credential = Akiaggeuazb7E5XX6NPA% 2F20220221% 2FEU-WEST-2% 2FS3% 2FAWS4_Request & X-AMZ-Signature = D3839DFFFFF925D76B8ED10EF27D1C4460D20470
este es mi codigo
private fun getExifOrientationFromURI(context: Context, url: String): Int { var orientation: Int = 1 try { context.contentResolver.openInputStream(Uri.parse(url)).use { inputStream -> //ERROR IS AT THIS LINE if(inputStream == null) return orientation val exif = ExifInterface(inputStream) orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL) } } catch (e: IOException) { e.printStackTrace() } return orientation }¿Qué estoy haciendo mal?
openInputStream() en ContentResolver no admite direcciones URL http o https , solo file , content y valores Uri de android.resource . Debe usar una API HTTPS para su URL, como OkHttp.