在Android TV应用中,如果需要访问用户的本地文件系统,就需要使用OPEN_DOCUMENT_TREE Intent。这个Intent会打开一个文件选择器,让用户选择要共享的目录。
下面是一个使用OPEN_DOCUMENT_TREE Intent的示例代码:
private static final int REQUEST_CODE_OPEN_DIRECTORY = 1;
private void openDirectory() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, REQUEST_CODE_OPEN_DIRECTORY);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (requestCode == REQUEST_CODE_OPEN_DIRECTORY && resultCode == RESULT_OK) {
Uri treeUri = resultData.getData();
DocumentFile pickedDir = DocumentsContract.getTreeDocument(this, treeUri);
// use pickedDir to access directory
}
}
这段代码会启动一个新的Activity,让用户选择要共享的目录。在选择后,将返回所选目录的URI。
需要注意的是,在使用OPEN_DOCUMENT_TREE Intent时,需要将应用的targetSdkVersion设置为30或以上才能正常工作。