在android中共享联系人

时间:2017-08-03 19:08:48

标签: java android contacts android-contacts

我正在尝试使用我的Android应用程序共享联系人,并且我已经存货了。有没有办法直接使用意图分享联系人?或者我是否必须发送联系信息并在其他设备中重新构建?另外,有没有其他方法可以不使用意图?

2 个答案:

答案 0 :(得分:1)

您可以使用ContactsContract API将联系人共享为vcard文件(例如通过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);

答案 1 :(得分:0)

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