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