在android*享联系人
问题描述:
我试图使用我的android应用程序共享联系人,并且库存了。有什么方法可以直接使用意图分享联系人?或者我必须发送联系信息并在其他设备中重新构建它?另外,还有没有其他的方式来做到这一点,而不使用意图?在android*享联系人
答
您可以使用ContactsContract
API将联系人分享为电子名片文件(例如通过Whatsapp发送)。
(我假设你已经有联系人的lookupKey,如果没有它,让我知道,我会添加代码从使用ContactID得到它)
UPDATE添加方法从使用ContactID
得到LookupKey(确保导入Contacts
从ContactsContract.Contacts
)
private String getLookupKey(long contactId) {
String lookupKey = null;
String[] projection = new String[]{Contacts.LOOKUP_KEY};
String selection = Contacts._ID + "=" + contactId;
Cursor c = getContentResolver().query(Contacts.CONTENT_URI, projection, selection, null, null);
if (c != null) {
if (c.moveToFirst()) {
lookupKey = c.getString(0);
}
c.close();
}
return lookupKey;
}
String lookupKey = getLookupKey(long contactId);
if (TextUtils.isEmpty(lookupKey)) {
Log.e(TAG, "couldn't get lookupKey");
return;
}
Uri shareUri = Uri.withAppendedPath(Contacts.CONTENT_VCARD_URI, lookupKey);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(Contacts.CONTENT_VCARD_TYPE);
intent.putExtra(Intent.EXTRA_STREAM, shareUri);
intent.putExtra(Intent.EXTRA_SUBJECT, "Share a contact");
startActivity(intent);
答
我会使用的策略是在本地获取所需的联系人。然后,将这些解析到具有所需字段的JSON对象中。将JSON发送到其他用户从其下载的服务器或通过蓝牙将JSON发送到其他设备。
+0
我明白了,但举例来说,如果我想通过WhatsApp的发送它,我该怎么做才能使JSON接触OBJE ct在whatsapp? – Maxi
谢谢你的回答,我很抱歉,但我甚至不知道联系人的lookupKey是什么,你介意给我解释一下并删除代码吗? – Maxi
你有联系人吗? – marmor
是的,我有,这是工作,非常感谢你:D – Maxi