【问题标题】:Email Intent display wrong addresses电子邮件意图显示错误的地址
【发布时间】:2019-10-01 18:25:26
【问题描述】:

在阅读了this questionthis question 之后,我编写了这段代码来为多个地址发送电子邮件:

String[] addresses = {"test@gmail.com", "some@gmail.com" ,"third@gmail.com"};

    Intent someIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto", Arrays.toString(addresses), null)) //all the addresses 
    .putExtra(Intent.EXTRA_SUBJECT, "This is a test")
    .putExtra(Intent.EXTRA_TEXT, "For my app");
    startActivity(Intent.createChooser(someIntent, "Send email..."));

看起来像这样:

正如您在图片中看到的那样,由于某种原因,我收到了第一个电子邮件地址的额外 [ 和最后一个电子邮件地址的额外 ](这导致无效的电子邮件地址,我无法发送电子邮件)。

为什么会发生这种情况以及如何删除那些多余的 []

【问题讨论】:

  • 推测[] 来自Arrays.toString()
  • 同意 commonsware 我相信这是一个数组字符串
  • 试试stackoverflow.com/a/29615037/9263083,它对我有用
  • 感谢您的所有 cmets,CommonsWare 解决了它。有时我确实会犯最愚蠢的错误。

标签: android android-intent


【解决方案1】:

正如 CommonsWare 在他的评论中所说,额外的 [] 确实来自 Arrays.toString()

我所要做的就是从字符串中删除 [] 就可以了

String[] addresses = {"1tamir198@gmail.com", "some@gmail.com", "third@gmail.com"};
String cleanAddresses = Arrays.toString(addresses).replace("[", "").replace("]", ""); //remove [] from addresses

    Intent someIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
            "mailto", cleanAddresses, null)) //all the addresses
            .putExtra(Intent.EXTRA_SUBJECT, "This is a test")
            .putExtra(Intent.EXTRA_TEXT, "For my app");
    startActivity(Intent.createChooser(someIntent, "Send email..."));

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2012-03-04
    • 2014-12-10
    • 2018-09-09
    相关资源
    最近更新 更多