请问如何解决android Uri 进行ipv6+端口解析本身的bug

danscort2000 2019-01-09 01:20:42
首先,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,
那么如何进行变通呢? 有没有其他方法可以解决这个问题
...全文
736 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧