邮件和电话号码的正确MIME类型是什么?

时间:2014-10-01 13:49:56

标签: android uri nfc mime-types ndef

我目前正在使用NFC标签上的NdefRecords开发NFC Android。要存储名片(VCard),使用此MIME类型就足够了:

text/vcard

但是电子邮件地址或电话号码的MIME类型是什么?

或者,您能建议一个很好的解决方案,将电话号码和电子邮件地址写入NFC标签吗?

3 个答案:

答案 0 :(得分:3)

这是我用来发送带有文字和多个附件的电子邮件的代码:

private final void sendEmailWithMultipleAttachments
(
    final String[] to, final String[] cc, final String[] bcc,
    final String subject, final String body, final List<String> filePaths
) throws ActivityNotFoundException
{
    final Intent tnt =
        new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    ////tnt.setType("plain/text");
    //tnt.setType("text/plain");
    //tnt.setType("message/rfc822");
    //tnt.setType("text/xml");
    tnt.setType("*/*");
    tnt.putExtra(android.content.Intent.EXTRA_EMAIL, to);
    //tnt.putExtra(android.content.Intent.EXTRA_CC, cc);
    //tnt.putExtra(android.content.Intent.EXTRA_BCC, bcc);
    tnt.putExtra(Intent.EXTRA_SUBJECT, subject);
    //tnt.putExtra(Intent.EXTRA_TEXT, body);

    if (filePaths != null)
    {
        // It has to be an ArrayList
        final ArrayList<Uri> URIs = new ArrayList<Uri>();
        // Convert from paths to Android friendly Parcelable URIs
        for (final String file : filePaths)
        {
            final File fileIn = new File(file);
            if (fileIn.exists())
            {
                final Uri u = Uri.fromFile(fileIn);
                URIs.add(u);
            }
        }
        tnt.putParcelableArrayListExtra(Intent.EXTRA_STREAM, URIs);
    }

    // TEST ONLY:
    /*
    System.out.println("to     : " + to[0]);
    System.out.println("subject: " + subject);
    System.out.println("file/s : " + filePaths.size());
    */

    // It has to be "this"!!
    //this.startActivity(Intent.createChooser(tnt, ""));
    //this.startActivity(Intent.createChooser(tnt, "Choose an eMail Client"));
    /*
    // Without the "Use this actios as default" checkbox
    startActivity
    (
        Intent.createChooser
        (
            tnt, getString(R.string.choose)
        )
    );
    */
    // With the "Use this actios as default" checkbox
    startActivity(tnt);
}

答案 1 :(得分:2)

存储电话号码(拨打电话)和电子邮件链接(不通过整张名片)的正确方法是使用URI记录。

对于电话呼叫(号码为+431234567),URI为

tel:+431234567

在Android上,您可以使用

创建包含该URI的NDEF记录
NdefRecord callUri = NdefRecord.createUri("tel:+431234567");

或发送短信:

NdefRecord callUri = NdefRecord.createUri("sms:+431234567?body=MyMessage");

对于电子邮件(发送到myname@example.com),URI将为

mailto:myname@example.com

在Android上,您可以使用

创建包含该URI的NDEF记录
NdefRecord mailtoUri = NdefRecord.createUri("mailto:myname@example.com");

顺便说一下。除了简单的收件人地址之外,mailto: URI方案(以及sms: URI方案)还支持其他参数,如subject来指定邮件主题,body来指定消息文本(有关这些功能的完整说明,请参阅相关RFC,但请注意Android不支持所有这些功能)。例如

NdefRecord mailtoUri = NdefRecord.createUri("mailto:myname@example.com?subject=mysubject&body=mytext");

将通过主题&#34; mysubject&#34;为myname@example.com创建现成电子邮件的NDEF记录。和消息体&#34; mytext&#34;。

答案 2 :(得分:0)

使用NFC,您可以使用mime类型的vcard。我们使用了例如&#34;文本/ X-电子名片&#34;它工作正常,甚至包括照片。