首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DocumentFile共享FileProvider

使用DocumentFile共享FileProvider
EN

Stack Overflow用户
提问于 2020-01-19 21:24:47
回答 2查看 307关注 0票数 1

如果我想共享sourceFile类型的File,我使用FileProvider与权限。片段:

代码语言:javascript
复制
val intent = Intent(Intent.ACTION_SEND)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.putExtra(
    Intent.EXTRA_STREAM, FileProvider.getUriForFile(
        context,
        context.applicationContext.packageName + ".provider",
        sourceFile
    )
)
intent.type = "audio/ogg"
startActivity(context, Intent.createChooser(intent, context.getString(R.string.share_audio)), null)

如果sourceFile是一个DocumentFile而不是File,那么如何才是正确的方法?

我找不到任何替代getUriForFile的方法,因为它可以与DocumentFile协同工作。目前,我只是复制文件缓存,然后从那里共享它,但我想应该有一个更好的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-19 21:35:56

,如果sourceFile是DocumentFile而不是DocumentFile,那么如何才是正确的方法呢?

在这种情况下,您不需要FileProvider。相反,在getUri()上调用DocumentFile,并在Intent中使用该Uri

票数 3
EN

Stack Overflow用户

发布于 2020-01-20 05:20:46

代码语言:javascript
复制
Uri fileUri = null;
                                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                                    try {
                                        fileUri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".myfileprovider", file);
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                    }
                                } else {
                                    fileUri = Uri.parse("file://" + file.getAbsolutePath());
                                }

                                Intent share = new Intent(Intent.ACTION_SEND);
                                share.setType("audio/ogg");
                                share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                                startActivityForResult(Intent.createChooser(share, "Share"), 201);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59814533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档