请问如何解决android Uri 进行ipv6+端口解析本身的bug
首先,ipv4下绝对没有问题,采用域名的方式也没有出现问题
问题出在直接填写ipv6地址加端口号时,
如果没有端口 ,也就是采用默认端口,
http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]/test.mp3
这个连接采用
Uri uri1=Uri.Parse("http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]/test.mp3")
然后调用Intent 或者直接用VideoView里的MediaPlayer都可以播放成功
但是 很多情况下,例如ftp http https不是在默认端口,例如跑在8080
标准的ipv6写法类似 http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:8080/test.mp3
如果再使用Uri uri1=Uri.Parse("http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:8080/test.mp3")
无论是调用Intent 或者直接使用VideoView里的MediaPlayer,都会失败
已经测试了很多次,包括mpv vlc等播放程序都尝试过,全部失败
检索发现 Uri类的实现本身对ipv6地址的解析本身存在Bug, 到2018年10月才修复
问题是,不能指望所有的设备都会更新rom,
那么如何进行变通呢? 有没有其他方法可以解决这个问题