如何将现有联系人添加到“电话联系人”帐户

问题描述 投票:1回答:2

iam使用此代码向设备添加联系人

long Contact_Id = 100;
ContentValues pCV =new ContentValues();
pCV.put(Contacts.People.NAME, "test");
pCV.put(ContactsContract.Contacts._ID, Contact_Id);
Uri newContactUri = insertContentValues(cResolver,
                    Contacts.People.CONTENT_URI, pCV);

我想将此联系人添加到某个帐户。我使用下面的代码

ContentResolver cResolver = context.getContentResolver();
cResolver.insert(uri, ContactsContract.RawContacts.CONTENT_URI,
                        getAccountType()); 

public ContentValues getAccountType() {
    ContentValues cv = new ContentValues();  
    cv.put(ContactsContract.RawContacts.ACCOUNT_TYPE,  "com.sonyericsson.localcontacts");
    cv.put(ContactsContract.RawContacts.ACCOUNT_NAME, "Phone contacts");
    return cv;
}

此代码实际上是向“电话联系人”帐户添加新联系人。但我想添加上面添加的联系人(“测试”)以添加到“电话联系人”。我怎么能这样做?

android contacts rawcontacts
2个回答
1
投票

搜索后,我发现将联系人插入本地电话联系人的最佳方式是将ACCOUNT_TYPEACCOUNT_NAME分配给null,看看这个Link


0
投票

您可以根据自己的选择/要求尝试两种解决方案。两者都完美无缺

要添加联系人直接打开编辑活动

    try {
        Intent addContactIntent = new Intent(Intent.ACTION_INSERT);
        addContactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
        addContactIntent.putExtra(ContactsContract.Intents.Insert.PHONE, number);
        addContactIntent.putExtra("finishActivityOnSaveCompleted", true);
        context.startActivity(addContactIntent);
    } catch (Exception e) {
        e.printStackTrace();
    }

创建联系人或向现有联系人添加联系人的选项

 try {
        Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
        i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
        //  i.putExtra(ContactsContract.Intents.Insert.NAME, "TESTTEST");
        i.putExtra(ContactsContract.Intents.Insert.PHONE, number);
        context.startActivity(i);
    } catch (Exception e) {
        e.printStackTrace();
    }
© www.soinside.com 2019 - 2024. All rights reserved.