这里传入Uri后在open()方法是通过contentResolver来获取文件流的,这个没毛病,但是getpath()方法的实现就拿不到正确的文件路径,并且是一个不存在的路径。
result = Checker.SINGLE.needCompress(mLeastCompressSize, path.getPath()) ? new Engine(path, outFile, focusAlpha).compress() : new File(path.getPath());
在压缩方法中,如果文件不需要压缩,使用path.getPath()创建了文件,导致返回的压缩文件路径错误,使用时找不到文件。
FileProvider提供的Uri的schema是content,不是file,所以通过uri.getPath()是拿不到真正的路径的 `public Builder load(final Uri uri) { mStreamProviders.add(new InputStreamProvider() { @Override public InputStream open() throws IOException { return context.getContentResolver().openInputStream(uri); }
这里传入Uri后在open()方法是通过contentResolver来获取文件流的,这个没毛病,但是getpath()方法的实现就拿不到正确的文件路径,并且是一个不存在的路径。
result = Checker.SINGLE.needCompress(mLeastCompressSize, path.getPath()) ? new Engine(path, outFile, focusAlpha).compress() : new File(path.getPath());
在压缩方法中,如果文件不需要压缩,使用path.getPath()创建了文件,导致返回的压缩文件路径错误,使用时找不到文件。