问题描述
当用户在我的应用程序中按下“浏览文件”按钮时,我想显示所有已安装的文件浏览器应用程序,但没有传递任何文件,我只想打开一个文件浏览器。此外,我不想等待文件选择器或任何其他结果。我只想显示为浏览他的文件而安装的用户应用程序。
我试过了:
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);
一定要捕捉很多可能的异常。
知道包名称后,您可以通过这种方式启动每个应用程序。