Android - 如何检查文件管理器是否可用?

Android - How to check if file manager is available?

我的应用程序使用自定义类型的文件,可以保存到外部存储器并共享。

我想使用文件选择器选择一个文件并加载它。这是我的代码:

Uri uri = Uri.fromFile("path/to/folder");
Intent intent = new Intent(Intent.ACTION_PICK, uri);
try {
    startActivityForResult(Intent.createChooser(intent, "Select a file"), 123);
} catch (android.content.ActivityNotFoundException e) {
    Toast.makeText(this, "Error fileChooser",Toast.LENGTH_SHORT).show();
    Log.e("Dan", "onOptionsItemSelected: Error filechooser ActivityNotFoundException", e);
}

此代码在我的 genymotion 模拟器和我的 CyanogenMod 上的 Nexus 4 上绝对完美运行,并调用文件管理器浏览到该文件夹​​。

但是当我试戴我全新的 LG G4 时,它不起作用。 最大的问题是我没有收到任何错误消息,只有一个标题正确的文件选择器和一条消息 "No app can perform this action".

如何检查文件选择器是否可用? (如果需要,提供一个简单的替代方案)

试试这个:

PackageManager packageManager = getActivity().getPackageManager();
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*");
List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
                                PackageManager.GET_ACTIVITIES));

然后,检查list的大小,如果为0,则没有文件资源管理器。