Android DownloadManager ERROR_UNKNOWN 在API 17 巨坑完美解决

现在做了一个下载,为了兼容性直接使用Android Sdk 自带的 DownloadManager 开发,在其他手机上都是OK,只有在有一台vivo上不行。

我尝试使用vivo系统浏览器去下载这个链接,也是OK的,这个排除了网络问题和系统下载的bug的问题。

尝试去找错误给我返回一个ERROR_UNKNOWN,完全SB了,此路不通。

尝试换一个链接去下载,居然也是OK的,所以确定了是链接的问题,链接有什么问题?我对比了一下,除了下载失败链接里包含了中括号[],其他也没有什么不一样的,所以我尝试着使用%5B%5D 替换 [],居然好了。这也太奇葩了吧。。。

url = url.replace("[","%5B").replace("]","%5D");

之后quanke( http://quanke.name )去Google了一下,搞明白了,原来Android系统在18之前有这么一个问题,之后修复了。

最终解决:

if(Build.VERSION.SDK_INT<=Build.VERSION_CODES.JELLY_BEAN_MR2){
            uri = uri.replace("[","%5B").replace("]","%5D");
        }

参考:

http://stackoverflow.com/questions/37976748/downloadmanager-fails-with-error-unknown-on-api-17

全科龙婷

转载于:https://my.oschina.net/quanke/blog/776068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值