如何在不使用意图的情况下直接访问我的应用中的DocumentsProvider?

时间:2017-05-05 11:05:50

标签: android android-contentprovider android-contentresolver storage-access-framework

我想创建一个DocumentsProvider来管理指定的文件夹。我有另一个应用程序需要使用此DocumentsProvider来浏览/管理文件夹中的文件。

我看到很多使用intent和startActivity的示例代码,然后使用DocumentsUI来获取URI。是否可以通过我的应用程序直接访问DocumentsProvider而无需使用意图?

我尝试使用固定URI作为我的DocumentsProvider,并尝试使用DocumentsContract来访问它,但它会遇到" SecurityException:找不到UID和Uri"的可持久权限授予。我首先使用了grantUriPermission(),但它没有帮助。

是否可以使用固定(预定义)URI而不是返回意图中的URI来访问DocumentsProvider?

1 个答案:

答案 0 :(得分:0)

就像CommonsWare在评论中所说的那样,你可能正在尝试使用一种用于其他目的的东西,但实现你所说的并不是不可能的。

您似乎拥有这两个应用,因此您可以通过分配sharedUserId让他们共享相同的UID,您应该能够与DocumentsProvider交谈。

或者,您可以在拥有DocumentsProvider的应用程序中定义一个特殊活动,在该应用程序中,它授予其他应用程序URI权限。然后你应该能够访问它。虽然不确定这是否是您想要的,因为您仍然需要启动意图来启动非UI活动。