具有初始路径的 SAF - 防止更改管理器中的初始路径

SAF with initial path - prevent changing initial path in manager

val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).apply {
    putExtra("android.content.extra.SHOW_ADVANCED", true)
    putExtra("android.content.extra.FANCY", true)
    putExtra("android.content.extra.SHOW_FILESIZE", true)
}

...

intent.putExtra(
    DocumentsContract.EXTRA_INITIAL_URI,
    uri // for example for /emulated/0/Audiobooks
)

但用户可以 select 文件管理器中的不同路径。我怎样才能阻止它到一个特定的路径?

我只需要获得特定文件夹的权限,用户应该可以选择 select 其他...

所以基本上他可以 select 其他路径而不是有声读物,然后按“使用此文件夹”按钮

How can I block it to one specific path?

那是不可能的,抱歉。它是用户的设备,也是用户的内容。用户可以决定与您的应用共享什么树(如果有)。