我目前正在开发一个联系人应用程序,我一直在寻找一段时间以编程方式在android中分享联系人。我不知道我应该将联系人发送到其他设备的格式。如果我发送文本,它将如何处理成接收器设备中的联系人合同?你能告诉我如何让它发挥作用吗?
答案 0 :(得分:2)
您需要获取联系人的VCard
句柄(使用ContactsContract
API:Contacts.CONTENT_VCARD_URI
),然后使用ACTION_SEND
意图发送。
String lookupKey = <the contact's lookup key>;
Uri vcardUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(ContactsContract.Contacts.CONTENT_VCARD_TYPE);
intent.putExtra(Intent.EXTRA_STREAM, shareUri);
intent.putExtra(Intent.EXTRA_SUBJECT, "Bob Dylan"); // put the name of the contact here
startActivity(intent);
<强>更新强>
回答@Abhay Maniyar删除的问题 - 从contactId获取lookupKey:
Cursor cur = getContentResolver().query(Contacts.CONTENT_URI, new String[] { Contacts.LOOKUP_KEY }, Contacts._ID + " = " + contactId, null, null);
if (cur.moveToFirst()) {
String lookupKey = cur.getString(0);
}
答案 1 :(得分:1)
如果你问如何将它分享给whatsapps这样的东西,你可以尝试发送它和意图。
你可以发送这样的纯文本:
Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
whatsappIntent.setType("text/plain");
whatsappIntent.setPackage("com.whatsapp");
whatsappIntent.putExtra(Intent.EXTRA_TEXT, "The text you wanted to share");
try {
activity.startActivity(whatsappIntent);
} catch (android.content.ActivityNotFoundException ex) {
ToastHelper.MakeShortText("Whatsapp have not been installed.");
}
有关详细信息,请参阅 Share image and text through Whatsapp or Facebook 。
如果你想更进一步,我建议你看看像 WhatsApp
这样的第三方开发文档还可以在 this page of Android
上找到更一般的信息Here 概述了您可以在意图中发送的内容。
答案 2 :(得分:0)
使用以下代码分享您的联系人,从联系人光标
获取联系人姓名和LookupKey
private void shareContact() {
//lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
String lookupKey2 = lookupKey;
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey2);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(ContactsContract.Contacts.CONTENT_VCARD_TYPE);
intent.putExtra(Intent.EXTRA_STREAM, uri );
intent.putExtra(Intent.EXTRA_SUBJECT, contactName); // put the name of the contact here
startActivity(intent);
}