如何让用户选择他想要用来打开文件的应用程序?
Posted
技术标签:
【中文标题】如何让用户选择他想要用来打开文件的应用程序?【英文标题】:How can I ask the user to select the app he wants to use to open a file? 【发布时间】:2017-02-18 04:02:26 【问题描述】:我正在尝试为 android 制作自己的文件管理器。 我想知道如何要求用户选择他想要使用的应用程序打开文件。比如当你打开一个 .doc 文件并且你有一堆 .doc 文件阅读器时。如何检索用户可用于读取/打开文件的应用列表?
【问题讨论】:
【参考方案1】:试试这个代码
Uri uri = Uri.parse("Your file name: //"+file.getAbsolutePath());
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
String type = "application/msword";
intent.setDataAndType(Uri.fromFile(file), type);
startActivity(intent);
【讨论】:
【参考方案2】:您应该为您的目的使用隐式意图。下面是提供播放视频文件选项的示例代码
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("https://youtu.be/jxoG_Y6dvU8"), "video/*");
startActivity(Intent.createChooser(intent, "Complete action using"));
希望对你有所帮助。有关更多详细信息,您可以参考以下链接中提到的 android 官方文档
https://developer.android.com/training/basics/intents/sending.html#AppChooser
【讨论】:
当我点击一个 png 文件时。它不显示应用程序列表中的图库。如果文件类型是 png,我喜欢如何制作它,应用程序列表用于打开图像。当它是 .doc 时,它会显示文档阅读器?对不起。我真的不擅长编程。编辑:哦,我认为这是 setDataAndType 代码。哈哈。我去试试 嗯,如果您发现任何问题,请尝试告诉我 我使用了这个代码Intent intent = new Intent(Intent.ACTION_VIEW); String title = getResources().getString(R.string.chooser_title); intent.setType("*/*"); Intent chooser = Intent.createChooser(intent, title);
它显示了不同的一堆应用程序。这就是我能做的。我不知道如何让它只显示图像的画廊应用程序和 .doc 和 .pdf 文件的文件阅读器。我太笨了哈哈【参考方案3】:
我觉得你可以试试这个
Intent in= new Intent(Intent.ACTION_MAIN);
in.setComponent(new ComponentName("com.package.address","com.package.address.MainActivity"));
startActivity(in);
【讨论】:
以上是关于如何让用户选择他想要用来打开文件的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章