Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Android Intent附加多个文件,可用于一个文件,但不能用于多个文件_Java_Android_Android Intent_Email Attachments - Fatal编程技术网

Java 通过Android Intent附加多个文件,可用于一个文件,但不能用于多个文件

Java 通过Android Intent附加多个文件,可用于一个文件,但不能用于多个文件,java,android,android-intent,email-attachments,Java,Android,Android Intent,Email Attachments,如果我使用一个简单的 intent.putExtra(Intent.EXTRA_STREAM, detailsuri); 。。。然后它就起作用了。但是如果我尝试使用附加多个文件 intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 。。。那它就什么都不附加了。当我一次只附加一个文件时,我可以成功地附加每个文件。所以这两个文件都没有问题。下面是创建文件、获取URI和构建意图的完整代码 我错过了什么?为什么我不能附加多个文件

如果我使用一个简单的

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);

W/Bundle:Key android.intent.extra.STREAM应为Parcelable,但值为java.util.ArrayList。返回了默认值。

W/Bundle:Key android.intent.extra.STREAM应为Parcelable,但值为java.util.ArrayList。返回了默认值。

Uri-does-implement-Parcelable。公共抽象类Uri扩展对象实现Parcelable,ComparableI不知道,谢谢你纠正我。Uri-does-Implemente Parcelable。公共抽象类Uri扩展对象实现Parcelable,ComparableI不知道,谢谢你纠正我。