首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Android中通过Intent选择任何类型的文件

在Android中通过Intent选择任何类型的文件
EN

Stack Overflow用户
提问于 2012-01-21 01:38:50
回答 6查看 127.1K关注 0票数 104

我想启动一个可以返回任何类型文件的应用程序的意图选择器

目前我正在使用(我从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文件管理器,因为他们已经有了一个基本但足够的文件管理器。

你知道我该如何做到这一点吗?我很确定我已经看到默认的文件管理器出现在这样的菜单中来选择一个文件,但我记不清是在哪个应用程序中。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-01-21 02:21:14

不是为了相机,而是为了其他文件..

在我的设备中,我安装了ES File Explorer,这个简单的东西在我的情况下可以工作。

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

Stack Overflow用户

发布于 2012-06-25 08:16:20

这项工作为我在银河笔记其显示联系人,文件管理器安装在设备上,画廊,音乐播放器

private void openFile(Int  CODE) {
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    i.setType("*/*");
    startActivityForResult(intent, CODE);
}

这里获取activity的onActivityResult中的路径。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     String Fpath = data.getDataString();
    // do somthing...
    super.onActivityResult(requestCode, resultCode, data);

}
票数 44
EN

Stack Overflow用户

发布于 2020-01-08 20:21:34

这给了我最好的结果:

    Intent intent;
    if (android.os.Build.MANUFACTURER.equalsIgnoreCase("samsung")) {
        intent = new Intent("com.sec.android.app.myfiles.PICK_DATA");
        intent.putExtra("CONTENT_TYPE", "*/*");
        intent.addCategory(Intent.CATEGORY_DEFAULT);
    } else {

        String[] mimeTypes =
                {"application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", // .doc & .docx
                        "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", // .ppt & .pptx
                        "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // .xls & .xlsx
                        "text/plain",
                        "application/pdf",
                        "application/zip", "application/vnd.android.package-archive"};

        intent = new Intent(Intent.ACTION_GET_CONTENT); // or ACTION_OPEN_DOCUMENT
        intent.setType("*/*");
        intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
    }
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8945531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档