DocumentsContract.buildRootUri(Providers.AUTHORITY_MTP, Providers.ROOT_ID_DEVICE)可以使打开文件管理器默认显示u盘界面,ROOT_ID_DEVICE=“primary”
时间: 2023-11-30 12:02:06 浏览: 38
不是的,`Providers.ROOT_ID_DEVICE` 的值为 `"primary"` 时,表示访问设备的主存储根目录。如果你想访问 U 盘的根目录,就需要将 `Providers.ROOT_ID_DEVICE` 替换为 U 盘的根目录 ID,或者使用 `DocumentsContract.buildDocumentUri()` 方法构建一个指向 U 盘根目录的 URI。具体的代码实现可以参考下面的示例:
```java
// 获取 U 盘的根目录 ID
String rootId = getMtpDeviceRootId();
// 构建指向 U 盘根目录的 URI
Uri uri = DocumentsContract.buildDocumentUri(Providers.AUTHORITY_MTP, rootId);
// 启动文件管理器并默认显示 U 盘界面
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "resource/folder");
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, uri);
startActivity(intent);
```
这个示例代码中,我们通过调用 `getMtpDeviceRootId()` 方法获取 U 盘的根目录 ID,然后使用 `DocumentsContract.buildDocumentUri()` 方法构建指向 U 盘根目录的 URI。最后,我们将这个 URI 传递给文件管理器,并使用 `putExtra()` 方法将 URI 传递给文件管理器的 `EXTRA_INITIAL_URI` 参数,以便让文件管理器默认显示 U 盘界面。