[通过Android中的Intent拾取任何类型的文件

问题描述 投票:86回答:6

我想为可以返回任何类型文件的应用程序启动一个Intentchooser

当前我使用(我从Android电子邮件源代码复制了该文件,用于文件附件)

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
Intent i = Intent.createChooser(intent, "File");
startActivityForResult(i, CHOOSE_FILE_REQUESTCODE);

但是它仅在我的Galaxy S2上显示“图库”和“音乐播放器”。该设备上有一个文件浏览器,我希望它出现在列表中。我还希望照相机应用程序显示在列表中,以便用户可以拍摄照片并通过我的应用程序发送。如果我安装了Astro文件管理器,它也会响应该意图。我的客户仅是Galaxy SII所有者,鉴于他们已经具有基本但足够的文件管理器,因此我不想强迫他们安装Astro文件管理器。

关于如何实现此目标的任何想法?我敢肯定,我已经看到默认的文件管理器出现在这样的菜单中来选择文件,但是我不记得是哪个应用程序。

android file android-intent intentfilter
6个回答
84
投票

不是用于照相机,而是用于其他文件。

在我的设备中,我安装了ES File Explorer,在我来说,这很简单。

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("file/*");
startActivityForResult(intent, PICKFILE_REQUEST_CODE);

47
投票

三星文件浏览器不仅需要自定义操作(com.sec.android.app.myfiles.PICK_DATA


37
投票

这对我来说是银河系的作品它的表演联系人,安装在设备上的文件管理器,画廊,音乐播放器


1
投票

结果是,三星文件浏览器使用自定义操作。这就是为什么当我从三星应用程序而不是我的应用程序中查找文件时,可以看到三星文件浏览器的原因。


0
投票

如果您想知道这一点,它存在一个名为aFileDialog的开源库,它是一个小巧易用的文件提供程序。


0
投票

这给了我最好的结果:

© www.soinside.com 2019 - 2024. All rights reserved.