Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中共享联系人_Java_Android_Contacts_Android Contacts - Fatal编程技术网

Java 在android中共享联系人

Java 在android中共享联系人,java,android,contacts,android-contacts,Java,Android,Contacts,Android Contacts,我试图用我的android应用程序分享一个联系人,而且我有存货。是否有任何方法可以直接使用意图共享联系人?或者我必须发送联系信息并在其他设备中重新构建它吗?另外,有没有其他方法可以不使用intent来实现这一点?我将使用的策略是在本地获取所需的联系人。然后,用所需字段将它们解析为JSON对象。将JSON发送到其他用户从中下载的服务器,或通过蓝牙将JSON发送到其他设备。您可以使用ContactsContractAPI将联系人作为vcard文件共享(例如通过Whatsapp发送) (我假设您已经拥

我试图用我的android应用程序分享一个联系人,而且我有存货。是否有任何方法可以直接使用意图共享联系人?或者我必须发送联系信息并在其他设备中重新构建它吗?另外,有没有其他方法可以不使用intent来实现这一点?

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

您可以使用
ContactsContract
API将联系人作为vcard文件共享(例如通过Whatsapp发送)

(我假设您已经拥有联系人的查找键,如果您没有,请告诉我,我将添加从contactId获取该键的代码)

更新添加了从ContactId获取LookupKey的方法

(确保从
Contacts contract.Contacts
导入
联系人


我理解,但举例来说,如果我想通过whatsapp发送它,我怎么做才能使json成为whatsapp中的联系人对象?谢谢你的回答,对不起,我甚至不知道联系人的查找键是什么,你介意解释一下并删除代码吗?你有联系人id吗?getLookupKey(长联系人id);-我们如何获得contactId。。先生
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);