我已经以编程方式编写了CSV,我希望允许用户在他们的设备上安装的应用中打开CSV。
我有以下内容:
File file = new File(Environment.getExternalStorageDirectory(), "My_App_Dir/" + fileName);
Intent csvIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
csvIntent.addCategory(Intent.CATEGORY_OPENABLE);
csvIntent.setDataAndType(FileProvider.getUriForFile(getActivity(), getActivity().getApplicationContext().getPackageName() + ".provider", finalFile), "text/csv");
csvIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
csvIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getActivity().startActivity(csvIntent);
当我运行上面的代码时,我得到的是最近的文件资源管理器(它没有显示文件)而不是应用程序选择屏幕,以允许用户选择他们想要用来打开文件的应用程序。
如果我转到我的设备文件资源管理器应用程序(固态资源管理器)并选择该应用程序,它会为我提供一个能够支持CSV(Google文档或Excel)的应用程序列表。
答案 0 :(得分:3)
使用ACTION_VIEW
。 ACTION_OPEN_DOCUMENT
相当于桌面操作系统或Web浏览器“文件打开”对话框。