SHARE INTENT Intent.createChooser:如何显示所有已安装的文件浏览器应用程序?

问题描述

用户在我的应用程序中按下“浏览文件”按钮时,我想显示所有已安装的文件浏览器应用程序,但没有传递任何文件,我只想打开一个文件浏览器。此外,我不想等待文件选择器或任何其他结果。我只想显示为浏览他的文件而安装的用户应用程序。

我试过了:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivity(Intent.createChooser(intent,getString(R.string.select_file_browser)));

它应该向用户显示设备中安装的所有文件浏览器应用程序,其中有三个,但不显示它们。设备只是打开设备中安装的认“文件”谷歌认应用。

我该如何解决这个问题?

Intent.ACTION_GET_CONTENT 是否是用于此目的的正确意图?

解决方法

文件应用程序的包名称(在可用的现代 Android 设备上)是

com.google.android.apps.nbu.files

您可以获取包名称的启动意图,然后使用启动活动。

String packageName = "com.google.android.apps.nbu.files";

Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);

startActivity(intent);

一定要捕捉很多可能的异常。

知道包名称后,您可以通过这种方式启动每个应用程序。