如何使用意图分享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);
答案 0 :(得分:1)
如何使用意图分享Android联系人?
你不太可能。联系人是一系列数据库记录,因此通常不能通过ACTION_SEND
共享。
此外,您不会将setData()
与ACTION_SEND
一起使用。通常,您将EXTRA_TEXT
或EXTRA_STREAM
设置为要共享的文本或Uri
,并将Intent
的MIME类型设置为{中的内容的MIME类型{1}}(EXTRA_TEXT
)或text/plain
。您可能希望查看the documentation on ACTION_SEND
以了解其他替代方案。
我的猜测是,很少有应用会同意共享联系人,那些会在尝试时会崩溃,因为EXTRA_STREAM
中的Uri
应该代表一个流(例如,一个文件)由EXTRA_STREAM
提供,而不是数据库样式的条目。
您可以考虑生成代表联系人的一些文本或HTML,然后共享它,因为这更有可能成功(例如,通过电子邮件发送)。或者,您可以尝试使用标准的联系人编码格式,例如vCard,看看是否有效。