Android:如何通过意图分享联系人?

时间:2014-08-31 18:38:36

标签: android share contact

如何使用意图分享Android联系人?

我尝试过这样,但不知怎的,我想我必须以不同的方式转发联系人ID:

            Intent intent = new Intent(Intent.ACTION_SEND);
            Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(con.id));
            intent.setData(uri);
            startActivity(intent);

1 个答案:

答案 0 :(得分:1)

  

如何使用意图分享Android联系人?

你不太可能。联系人是一系列数据库记录,因此通常不能通过ACTION_SEND共享。

此外,您不会将setData()ACTION_SEND一起使用。通常,您将EXTRA_TEXTEXTRA_STREAM设置为要共享的文本或Uri,并将Intent的MIME类型设置为{中的内容的MIME类型{1}}(EXTRA_TEXT)或text/plain。您可能希望查看the documentation on ACTION_SEND以了解其他替代方案。

我的猜测是,很少有应用会同意共享联系人,那些会在尝试时会崩溃,因为EXTRA_STREAM中的Uri应该代表一个流(例如,一个文件)由EXTRA_STREAM提供,而不是数据库样式的条目。

您可以考虑生成代表联系人的一些文本或HTML,然后共享它,因为这更有可能成功(例如,通过电子邮件发送)。或者,您可以尝试使用标准的联系人编码格式,例如vCard,看看是否有效。