【问题标题】:Android - sharing files between applicationsAndroid - 在应用程序之间共享文件
【发布时间】:2014-07-25 22:21:11
【问题描述】:

我一直在尝试寻找不同的方式在 Android 中的应用之间共享文件。我找到了 file sharingcamera 教程,其中文件分别从所有者应用程序的私有目录和通过 sd 卡共享。

我观察到(从第一个链接)实现它的方法是使用Intent.setFlagsFLAG_GRANT_READ_URI_PERMISSION,但在本教程中,Intent.setFlags API 正在接收器应用程序中使用。更具体地说,

App 1 向 App 2 发送请求 ->

应用 2 使用 setResultreturn IntentURI permissions

在第二个链接中,

App 1 在 sd 卡存储中创建一个文件,并将其传递给相机进行写入。

如果我们看下图..

这是用户如何使用 Android 的典型示例,例如电子邮件中的附件需要签名并由用户在应用程序之间传递。

我想问的是,URI permissions with an Intentsending a Intent第二个应用,instead使用in the app receiving the Intent时是否可以使用URI permissions with an Intent

更具体地说,can URI permissions be used 在使用 startActivitystartService 之类的 API 时?

我问这个是因为,例如,当向第二个应用发送意图时(考虑到隐式意图),意图字段(数据、操作、类别)将被设置为与应用的意图过滤器相匹配。接收意图。共享文件时,数据URI需要与需要共享的文件对应。

如果我的问题不清楚,请发表评论,我会澄清。

编辑:

我也想问一下,发送Intent时是否只能使用sd卡共享文件?

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    我想问的是,在将 Intent 发送到第二个应用程序时,是否可以将 URI 权限与 Intent 一起使用,而不是在接收 Intent 的应用程序中使用?

    是的。

    更具体地说,在使用诸如 startActivity 或 startService 之类的 API 时可以使用 URI 权限吗?

    是的,虽然我只用startActivity() 尝试过。 Here is a sample project 演示了 FileProvider 的使用并授予第三方查看由 FileProvider 提供的 PDF 文件的权限。

    我也想问一下,发送Intent时是否只能使用sd卡共享文件?

    这不仅不是唯一的方法,也不是推荐的方法。如果您的应用有文件要与其他人共享,请使用 FileProvider 或您自己的 ContentProvider 实现。

    【讨论】:

    • 第二个应用是否有可能接收到带有 URI 权限的 Intent 将权限作为 Intent 传递给第三个应用?
    • @Jake:“第二个应用程序是否有可能收到具有 URI 权限的 Intent 将权限作为 Intent 传递给第三个应用程序?” -- 没有。
    • 能否请您看一下本文档中的第 2.1 节:enck.org/pubs/nadkarni-ccs13.pdf。在搜索时,我昨天找到了这个文档,这是我得到图片来询问我的疑问的地方,谢谢。在给定的图片中,DocuView 如何与 WordToPDF 共享文件?
    • @Jake:它可以制作文件的本地副本,然后共享自己的本地副本。或者,它可能要求所有相关方都可以读取文件,以便流程正常工作。
    • " 它可以制作文件的本地副本,然后共享它自己的本地副本。" - 这是否意味着 DocuView 可能正在使用 sd 卡作为本地副本? “它可能要求所有相关方都可以读取文件才能使流程正常工作”——“它”是指电子邮件还是 DocuView ? ,以及如何指定所有相关方对文件的可读性?谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多