有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过Android Intent附加多个文件,可以使用一个文件,但不能使用多个文件

如果我使用一个简单的

intent.putExtra(Intent.EXTRA_STREAM, detailsuri);

。。。然后它就起作用了。但是如果我尝试使用附加多个文件

intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

。。。那它就什么都不附加了。当我一次只附加一个文件时,我可以成功地附加每个文件。所以这两个文件都没有问题。下面是创建文件、获取URI和构建意图的完整代码

我错过了什么?为什么我不能附加多个文件

File outputDir = controller.getDocumentStorageDir();

String jsontext = buildDbText();

File dbfile = new File(outputDir, "db.json");
FileWriter writer = new FileWriter(dbfile);
writer.write(jsontext);
writer.close();

Uri jsondburi = Uri.fromFile(dbfile);

String appdetails = buildDetailsText();

File detailsfile = new File(outputDir, "details.txt");
FileWriter writer = new FileWriter(detailsfile);
writer.write(appdetails);
writer.close();

Uri detailsuri = Uri.fromFile(detailsfile);


Intent intent = new Intent(Intent.ACTION_SENDTO);

intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { custsupportEmail });
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, emailbody);

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

ArrayList<Uri> uris = new ArrayList<>();
uris.add(detailsuri);
uris.add(jsondburi);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

startActivity(intent);

共 (1) 个答案

  1. # 1 楼答案

    W/Bundle:Key安卓。意图额外的STREAM应为Parcelable,但值为java。util。ArrayList。返回了默认值