清除 Android 中的历史记录(最近的文件夹) 5+ 目录树选择器 (ACTION_OPEN_DOCUMENT_TREE)

Clean history (recent folder) in Android 5+ directory tree picker (ACTION_OPEN_DOCUMENT_TREE)

创建的目录树选择器
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
...

on Android 5+ 将所有选择的目录历史记录保存到 Recent 文件夹:

...

有没有办法清除这段历史?

最近的历史记录保存在位于以下位置的数据库中:

/data/data/com.android.documentsui/databases/recents.db

因此其他应用程序无法访问它,除非设备已获得 root 权限。

有个ContentProvider (RecentsProvider) that manages the database but unfortunately it isn't exported, so only applications that have the same user ID (UID) as the provider will have access to it [1].

还有一个BroadcastReceiver(PackageReceiver) that controls the ContentProvider and purge the recents but unfortunately it only receives ACTION_PACKAGE_FULLY_REMOVED[2] and ACTION_PACKAGE_DATA_CLEARED [3]。这两个intent都是受保护的,只能由系统发送。

tl;dr 很遗憾,您无法清理最近的内容。唯一可行的解​​决方案是清除文档应用程序的全部数据,但在这种情况下所有设置都会丢失。