在我的应用程序中,我从任何其他可以共享pdf文件的应用程序中收到了pdf文件的Uri。
Uri uri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
无论如何,我不能完全使用这个Uri,我的图像,因为它是从一个文件提供程序外部我的应用程序。 例如,当我试图创建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?
据我所知,最好的做法是立即从内容提供商那里读取/复制数据,然后使用这些数据做任何你想做的事情。 所以不要浪费你的时间去试图管理原来的一个。 我希望对你有帮助