Here is the code i used:
private void addPeople(String name, List<String> homeNumbers, List<String> mobileNumbers) {
//insert contact
ContentValues peopleContentValues = new ContentValues();
peopleContentValues.put(Contacts.People.NAME, name);
//WARNING: this is for HTC to indicate the contact type
//extra_group = 0 [google contact]
//extra_group = 1 [??: maybe SIM contact]
//extra_group = 2 [phone concact]
peopleContentValues.put("extra_group", 2);
Uri peopleUri = getContentResolver().insert(Contacts.People.CONTENT_URI, peopleContentValues);
//get contact id [i need it to add phone numbers to it]
Cursor cursorPeople = getContentResolver().query(peopleUri, new String[]{Contacts.People._ID}, null, null, null);
cursorPeople.moveToNext();
long peopleId = cursorPeople.getLong(0);
//add phones
for (String num : mobileNumbers) {
addPhoneToPeople(peopleId, Contacts.Phones.TYPE_MOBILE, num);
}
for (String num : homeNumbers) {
addPhoneToPeople(peopleId, Contacts.Phones.TYPE_HOME, num);
}
}
private void addPhoneToPeople(long peopleId, int type, String number) {
if (number != null && !number.equals("")) {
ContentValues phoneContentValues = new ContentValues();
phoneContentValues.put(Contacts.Phones.PERSON_ID, peopleId);
phoneContentValues.put(Contacts.Phones.TYPE, type);
phoneContentValues.put(Contacts.Phones.NUMBER, number);
getContentResolver().insert(Contacts.Phones.CONTENT_URI, phoneContentValues);
}
}