在android*享联系人

问题描述:

我试图使用我的android应用程序共享联系人,并且库存了。有什么方法可以直接使用意图分享联系人?或者我必须发送联系信息并在其他设备中重新构建它?另外,还有没有其他的方式来做到这一点,而不使用意图?在android*享联系人

您可以使用ContactsContract API将联系人分享为电子名片文件(例如通过Whatsapp发送)。

(我假设你已经有联系人的lookupKey,如果没有它,让我知道,我会添加代码从使用ContactID得到它)

UPDATE添加方法从使用ContactID

得到LookupKey

(确保导入ContactsContactsContract.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); 
+0

谢谢你的回答,我很抱歉,但我甚至不知道联系人的lookupKey是什么,你介意给我解释一下并删除代码吗? – Maxi

+0

你有联系人吗? – marmor

+0

是的,我有,这是工作,非常感谢你:D – Maxi

我会使用的策略是在本地获取所需的联系人。然后,将这些解析到具有所需字段的JSON对象中。将JSON发送到其他用户从其下载的服务器或通过蓝牙将JSON发送到其他设备。

+0

我明白了,但举例来说,如果我想通过WhatsApp的发送它,我该怎么做才能使JSON接触OBJE ct在whatsapp? – Maxi