所以我一直在四处寻找,似乎无法弄明白,或者可能是因为我在模拟器中?
基本上我尝试下载文件,然后显示应用选择器,以便用户可以自由选择要打开它的应用程序。
我不确定的一件事是,你如何为意图做一个外卡mime类型?我的意思是,例如,下载的文件可以作为附件由邮件客户端共享和打开,所以它确实应该支持任何内容。
为了简洁起见,下载代码可以正常工作和下载,因此假设下载已完成并且文件位于缓存目录中:
Intent install = new Intent(Intent.ACTION_VIEW);
// Create intent to show chooser
Intent chooser = Intent.createChooser(install, "Open in...");
// Verify the intent will resolve to at least one activity
if (install.resolveActivity(_progressDialog.getContext().getPackageManager()) != null) {
_progressDialog.getContext().startActivity(chooser);
}
我做错了吗?
答案 0 :(得分:0)
我相信你也需要提供mime类型,例如与
intent.setDataAndType(Uri, mimetype);
其中mimetype类似于“text / plain”。您可以使用特殊方法或查找表从文件扩展名,标题中提取它(我不记得现在是如何完成的)。
但这至少在模拟器中无法正常工作。
答案 1 :(得分:0)
您可以使用以下意图来附加文件&发送电子邮件
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
intent.putExtra(Intent.EXTRA_TEXT, "body text");
File root = Environment.getExternalStorageDirectory();
File file = new File(root, xmlFilename);
if (!file.exists() || !file.canRead()) {
Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
finish();
return;
}
Uri uri = Uri.parse("file://" + file);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send email..."));