Matisse.obtainPathResult(data!!) 拿到的路径存在问题
这是Matisse.obtainPathResult(data!!) 拿到的路径 /storage/emulated/0/soul/1573139339639.jpg
这是正确的路径 /data/user/0/包名/files/1573139339639.jpg
请修复
看了下源代码在PathUtils文件的getDataColumn方法中的final String column = "_data” 其中“_data”相当于MediaStore.MediaColumns.DATA 而在Android 10上这个@deprecated了
如果你是使用Glide加载图片的话,在安卓10上面无法直接加载/storage/emulated/0/soul/1573139339639.jpg这种路径的图片,解决方案是将这个路径的图片写在应用程序下的cache目录下然后再去加载图片 https://joebirch.co/2019/10/09/media-store-access-using-openfile-on-android-10/
除了写一份还有其他办法吗
我还没找到其他更好的方案😂😂😂
好的 谢谢
直接通过uri加载不行吗
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛😂
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛
嗯,上传的话,就再通过其他方式获取呗
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛
嗯,上传的话,就再通过其他方式获取呗
我们讨论的就是我说的要上传的那种情况,使用obtainPathResult获取到的文件路径不对加载不出来且无法上传到服务器,所以目前我能找到的方案就是写进cache里面然后上传,你能找到其他更好的方法,请告诉我一下🤣
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛
嗯,上传的话,就再通过其他方式获取呗
我们讨论的就是我说的要上传的那种情况,使用obtainPathResult获取到的文件路径不对加载不出来且无法上传到服务器,所以目前我能找到的方案就是写进cache里面然后上传,你能找到其他更好的方法,请告诉我一下
通过uri
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛
嗯,上传的话,就再通过其他方式获取呗
我们讨论的就是我说的要上传的那种情况,使用obtainPathResult获取到的文件路径不对加载不出来且无法上传到服务器,所以目前我能找到的方案就是写进cache里面然后上传,你能找到其他更好的方法,请告诉我一下
利用uri通过FileDescriptor来读取就可以吧
直接通过uri加载不行吗
光加载肯定行啊 ,难道开发中选取图片后不上传图片到后台嘛
嗯,上传的话,就再通过其他方式获取呗
我们讨论的就是我说的要上传的那种情况,使用obtainPathResult获取到的文件路径不对加载不出来且无法上传到服务器,所以目前我能找到的方案就是写进cache里面然后上传,你能找到其他更好的方法,请告诉我一下🤣
ParcelFileDescriptor pfd = context.getContentResolver().openFileDescriptor(file.getFileUri(), "r");
if (pfd != null) {
inputStream = new FileInputStream(pfd.getFileDescriptor());
}
ParcelFileDescriptor读取uri得到输入流
+1,好像android还不是必先的,部分手机有问题。所以,各位讨论的结果是?
Most helpful comment
这是Matisse.obtainPathResult(data!!) 拿到的路径 /storage/emulated/0/soul/1573139339639.jpg
这是正确的路径 /data/user/0/包名/files/1573139339639.jpg
请修复