我打算将联系人添加到设备,如下所示:
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME,
user.getName());
intent.putExtra(ContactsContract.Intents.Insert.IM_HANDLE,
user.getID());
intent.putExtra(
ContactsContract.Intents.Insert.IM_PROTOCOL,
ContactsContract.CommonDataKinds.Im.PROTOCOL_CUSTOM);
startActivityForResult(intent, 0);
public static final String PROTOCOL
应填充此列 使用一个定义的常数,例如, PROTOCOL_YAHOO。如果值 此列的列是PROTOCOL_CUSTOM,CUSTOM_PROTOCOL应该包含 自定义协议的名称。常数值:“data5”。
当我点击添加或编辑联系人时,弹出的对话框显示为空的edittext,我必须选择 CUSTOM_PROTOCOL 的名称。根据文档,我无法找到如何设置 CUSTOM_PROTOCOL 值的方法。
答案 0 :(得分:0)
您可以通过这种方式添加自定义协议。
Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.NAME, user.getName());
ArrayList<ContentValues> data = new ArrayList<ContentValues>();
ContentValues values = new ContentValues();
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Im.DATA, user.getID());
values.put(ContactsContract.CommonDataKinds.Im.PROTOCOL, ContactsContract.CommonDataKinds.Im.PROTOCOL_CUSTOM);
values.put(ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL, "your_protocol");
data.add(values);
intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);
startActivityForResult(intent, 0);