设置ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL为自定义值



我调用一个intent来添加一个联系人到设备,像这样:

                    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值的方法。

您可以通过这种方式添加自定义协议。

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);

最新更新