我想启动一个可以返回任何类型文件的应用程序的意图选择器
目前我正在使用(我从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文件管理器,因为他们已经有了一个基本但足够的文件管理器。
你知道我该如何做到这一点吗?我很确定我已经看到默认的文件管理器出现在这样的菜单中来选择一个文件,但我记不清是在哪个应用程序中。
发布于 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);
发布于 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);
}
发布于 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);
}
https://stackoverflow.com/questions/8945531
复制相似问题