添加联系人与自定义电话号码标签

时间:2012-10-04 18:54:30

标签: android

我希望能够使用联系人姓名(足够简单),电话号码以及ICS支持的该电话号码的自定义标签向用户的联系人添加联系人。例如,我可能想将“John Doe”添加为电话号码“xxx-xxx-xxxx”作为自定义类型“Blackberry”。这种粒度可能吗?

2 个答案:

答案 0 :(得分:2)

这可以使用Intent完成,如下所示。 (额外奖励:您不必要求读/写联系人权限!)您感兴趣的具体字段是ContactsContract.Intents.Insert.PHONE_TYPE和ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE

private void addContact(Activity activity)
{
    Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
    intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
    intent.putExtra(ContactsContract.Intents.Insert.NAME, "John Smith");
    intent.putExtra(ContactsContract.Intents.Insert.EMAIL, "john@example.com");
    intent.putExtra(ContactsContract.Intents.Insert.PHONE, "555-555-5555");
    intent.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, "Blackberry");
    intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE, 555-444-3333);
    intent.putExtra(ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, "School Phone");
    activity.startActivity(Intent.createChooser(intent, ""));
}

答案 1 :(得分:0)

试试这段代码。 它是自定义在一个联系人中添加多个记录。
将联系人详细信息应用程序保存到默认电话联系簿非常容易。

ArrayList<ContentValues> data = new ArrayList<ContentValues>();

        ContentValues row2 = new ContentValues();
        row2.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
        row2.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_CUSTOM);
        row2.put(ContactsContract.CommonDataKinds.Email.LABEL, "Green Bot");
        row2.put(ContactsContract.CommonDataKinds.Email.ADDRESS, "android@android.com");
        data.add(row2);

        ContentValues row3 = new ContentValues();
        row3.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        row3.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM);
        row3.put(ContactsContract.CommonDataKinds.Phone.LABEL, "Arpit");
        row3.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "Aaa@android.com");
        data.add(row3);

        Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI);
        intent.putExtra(ContactsContract.Intents.Insert.NAME, "Jiks");
        intent.putExtra(ContactsContract.Intents.Insert.EMAIL, "john@example.com");
        intent.putExtra(ContactsContract.Intents.Insert.PHONE, "555-555-5555");
        intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data);
        startActivity(intent);