第一行代码Android 8.3调用摄像头和相册最新发现的bug

最近需要用到调用手机相册这门技术,就想到郭霖大神写的书里有,我也刚好敲过,就直接调用书里的代码,结果发现了一个隐藏的bug,就是调用手机相册时,如果你选择的时recent文件里的图片,那没问题,但是如果你选择download文件里的图片,会出现一个数值转换异常的情况,然后整个app强行退出,经过我的人工debug(写log)发现,问题出现在函数handleImageOnKitKat里,先看书上的源代码:

private void handleImageOnKitKat(Intent data){
    String imagePath=null;
    Uri uri=data.getData();
    if(DocumentsContract.isDocumentUri(this,uri)){
    
        //如果是Document类型的uri,则通过document id处理,如果你选择了download文件里的图片,则docId的值就变成了raw:+图片路径,我是通过写log发现的
        String docId=DocumentsContract.getDocumentId(uri);
        if("com.android.providers.media.documents".equals(uri.getAuthority())){
            String id=docId.split(":")[1];//解析出数字格式的id
            String selection=MediaStore.Images.Media._ID+"="+id;
            imagePath=getImagePath(MediaStore.Images.Med
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值