问题描述
在我的应用中,我使用Intent.ACTION_OPEN_DOCUMENT_TREE
选择一个文件夹,并获取所选择文件夹的Uri
。
我调用takePersistableUriPermission()
授予对选定Uri
读/写权限 。
我的问题是:它对我的设备中的多个用户有效吗? 例如:我使用Google帐户1登录,安装应用程序,选择一个文件夹并授予权限。 然后,我删除Google帐户1并使用Google帐户2登录。是否仍授予Uri权限?
我在Note4上进行了测试,更改用户后仍会授予它们。 但是我不确定其他设备,也没有找到有关此问题的任何文档。
1楼
持久的基于URI的权限与程序包名称(和用户ID-参见下文)相关联,而不与任何Google或其他帐户系统相关。 这意味着只要仍然安装该软件包,它将保留该许可(当然,除非授予应用将其撤消)。
在支持多个用户配置文件的设备(例如许多平板电脑,Android for Work或运行棉花糖的电话)上,每个用户彼此之间都是完全沙盒化的,并在其用户配置文件上运行每个应用程序的单独实例。 在这些情况下,基于URI的权限当然仅适用于应用程序在其下运行的用户,而不适用于其他用户配置文件。