【问题标题】:How to set FLAG_SUPPORTS_MOVE to Document?如何将 FLAG_SUPPORTS_MOVE 设置为文档?
【发布时间】:2017-03-17 12:39:31
【问题描述】:

最后我发现要移动 Document 实例,我需要(以某种方式)将 FLAG_SUPPORTS_MOVE 设置为它。但是Document 类没有任何setFlag() 或其他方法。我尝试使用 getContentResolver().takePersistableUriPermission() 将标志设置为 URI,但 IDE 警告我使用了注释未指定的其他标志。我只想在 25 API 上将所有文件从一个文件夹移动到另一个文件夹。

【问题讨论】:

    标签: android storage-access-framework documentfile


    【解决方案1】:

    客户端没有设置FLAG_SUPPORTS_MOVEDocumentsProvider 宣传是否可以使用这些标志来移动、重命名文档等。如果提供者添加了该标志,那么您可以use moveDocument() 将文档从一个集合移动到同一提供者中的另一个集合。

    【讨论】:

    • 我需要实现自己的 DocumentProvider 吗?还是有平台化的供应商?
    • @constantinopolskaya:“我需要实现自己的 DocumentProvider 吗?” - 可能不是。如果你能做到这一点,你就可以直接访问文件系统来访问你试图移动的任何东西,而且你不需要任何这些。 “还是有平台化的供应商?” ——大概你已经在使用它了。您尚未指出此Uri 的来源。如果是来自ACTION_OPEN_DOCUMENTACTION_OPEN_DOCUMENT_TREE等,那么那个Uri是别人的DocumentProvider给你的。
    • 我从 SAF(意图操作)获得了 URI,那么 DocumentProvider 在哪里?对不起,我很挣扎
    • @constantinopolskaya:“那么 DocumentProvider 在哪里?” ——它是由其他一些计算机程序员开发的。根据用户选择的文档,它可能是系统提供的DocumentProvider,也可能是来自非系统应用程序(例如,Google Drive、其他第三方应用程序)的文件。该提供商要么将FLAG_SUPPORTS_MOVE 添加到其文档中,要么不添加。
    • @constantinopolskaya 提供者可以通过ContentResolver 通过提供Uri 访问。这可能应该添加到Uri的文档中...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多