我目前正在使用NFC标签上的NdefRecords开发NFC Android。要存储名片(VCard),使用此MIME类型就足够了:
text/vcard
但是电子邮件地址或电话号码的MIME类型是什么?
或者,您能建议一个很好的解决方案,将电话号码和电子邮件地址写入NFC标签吗?
答案 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;它工作正常,甚至包括照片。