在我的应用程序中,我从任何其他可以共享PDF的应用程序中收到了一个PDF文件的URI。
Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
无论如何,我不能完全使用这个Uri,我的形象,因为它是从一个FileProvider外部到我的应用程序。例如,当我尝试创建FileDescriptor时:
ParcelFileDescriptor fd = context.getContentResolver().openFileDescriptor(uri, "r");
我得到这个错误:
W/System.err: java.lang.SecurityException: Permission Denial: opening provider androidx.core.content.FileProvider from ProcessRecord{...} (pid=23606, uid=10525) that is not exported from UID 10123
真的有必要获取文件路径,复制文件,并获取新的URI吗?或者我可以简单地以某种方式管理原始Uri?
2条答案
按热度按时间oug3syen1#
据我所知,最好的办法是立即从内容提供商那里读取/复制数据,然后使用这些数据做任何你想做的事情。所以不要浪费时间去管理原来的那个。希望对你有帮助
nhaq1z212#
真的有必要获取文件路径,复制文件,并获取新的URI吗?或者我可以简单地以某种方式管理原始Uri?答案是否定的。像这样使用