ShareCompat.IntentBuilder:Intent.data与收件人混合

时间:2018-10-12 09:30:09

标签: android android-intent

我正在使用ContactDetails.associate = function(models) { ContactDetails.belongsTo(models.EmailRegistration, { foreignKey: 'EmailRegistrationId' } ); }; 来发送带有附件的电子邮件。

除了我要附加的文件的uri被自动添加到收件人之外,附加文件没有任何问题。

亲眼看看:

enter image description here

这是我用来发送电子邮件的代码:

INSERT INTO `ContactDetails` (`id`,`contactnumber`,`isverified`,`createdAt`,`updatedAt`) VALUES ('52974e07-8489-4101-ab71-6af874903290','+xxxxxxxxx',false,'2018-10-12 08:55:35','2018-10-12 08:55:35');

(我已经使用了本教程:https://medium.com/androiddevelopers/sharing-content-between-android-apps-2e6db9d1368b

你们中的一个人知道我犯了什么错误吗?

提前谢谢

2 个答案:

答案 0 :(得分:0)

似乎是shareIntent.data = fileUri的问题。删除后一切正常。

答案 1 :(得分:0)

希望答案还为时不晚。

  

setData()-此方法 自动清除以前由以下用户设置的任何类型   setType(String)setTypeAndNormalize(String)

如果您看到了the medium link中的便笺,则他们从不会同时使用setType()setData()

  

注意:在构建setType()时,我们不会在任何地方致电ShareCompat   (即使我确实在视频中进行了设置)。正如在   setDataAndType() Javadoc, 类型是从   数据URI 使用getContentResolver().getType(uriToImage) 自   FileProvider自动返回正确的哑剧类型 我们不会   需要手动指定一个哑剧类型

由于文档还说:{p>

  

setData():此意图现在定位的数据的Uri 此值可能   为空


此外,您已经通过Uritype设置并获取了setType,而无需再次设置。但是,为简化代码,您可以尝试使用以下代码:

getType(fileUri)

好的样本are here