Android Method for Adding Contacts to Address Book
- 2021-12-13 09:20:17
- OfStack
Contact nickname contact avatar
Contact Remarks Contact Number
How to add contact company and position website contact mailbox contact address 1. Add silently
2. Jump Add
3. Add to an existing contact
Authority
Field
Contact name
I don't know why the name is set, but I passed it after the value is set, so I passed it alone once at last through Intent
// Contact name
ContentValues row1 = new ContentValues();String name = lastName + middleName + firstName;row1.put(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);row1.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
name);row1.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
firstName);row1.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
lastName);row1.put(ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,
middleName);
Contact nickname
ContentValues row2 = new ContentValues();
row2.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
row2.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickName);
Contact avatar
Here you need to pass in the byte array of the picture
ContentValues row3 = new ContentValues();
// Add an avatar
row3.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
Bitmap bitmap = BitmapFactory.decodeFile(photoFilePath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
row3.put(ContactsContract.CommonDataKinds.Photo.PHOTO, baos.toByteArray());
Contact comments
// Contact comments
ContentValues row4 = new ContentValues();
row4.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);
row4.put(ContactsContract.CommonDataKinds.Note.NOTE, remark);
Contact number
There are many types of numbers, such as telephone, mobile phone, fax, company, home, etc.
ContentValues row5 = new ContentValues();
// Telephone number of contact person
addPhoneNumber(row5, values, mobilePhoneNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);ContentValues row6 = new ContentValues();
// Company phone number of contact person
addPhoneNumber(row6, values, hostNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN);ContentValues row7 = new ContentValues();
// Work number of contact person
addPhoneNumber(row7, values, workPhoneNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE);ContentValues row8 = new ContentValues();
// Work fax of contact person
addPhoneNumber(row8, values, workFaxNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK);ContentValues row9 = new ContentValues();
// Residential Number of Contact
addPhoneNumber(row9, values, homePhoneNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_HOME);ContentValues row10 = new ContentValues();
// Contact's home fax
addPhoneNumber(row10, values, homeFaxNumber,
ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME);
// Method of adding encapsulation
private void addPhoneNumber(
ContentValues row, ArrayList<ContentValues> values, String phoneNumber, int type) {
row.put(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
row.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber);
row.put(ContactsContract.CommonDataKinds.Phone.TYPE, type);
values.add(row);
}
Contact Company and Position
// Contact Company and Position
ContentValues row11 = new ContentValues();
row11.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
row11.put(ContactsContract.CommonDataKinds.Organization.COMPANY, organization);
row11.put(ContactsContract.CommonDataKinds.Organization.TITLE, title);
Website
// Contact website
ContentValues row12 = new ContentValues();
row12.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);
row12.put(ContactsContract.CommonDataKinds.Website.URL, url);
Contact mailbox
// Insert Email Data
ContentValues row13 = new ContentValues();
row13.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
row13.put(ContactsContract.CommonDataKinds.Email.DATA, email);
row13.put(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK);
Contact Address
Address is divided into home, work and others. There is a problem, after the segment is passed in, it can't be displayed. You can only splice the streets of the country, provinces and cities and pass them into the address field, so it can be displayed, but the zip code can't be displayed
// Other addresses
ContentValues row14 = new ContentValues();
addAddress(row14, values, addressCountry, addressState, addressCity, addressStreet, addressPostalCode, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_OTHER);
// Home address
ContentValues row15 = new ContentValues();
addAddress(row15, values, homeAddressCountry, homeAddressState, homeAddressCity, homeAddressStreet, homeAddressPostalCode, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME);
// Work address
ContentValues row16 = new ContentValues();
addAddress(row16, values, workAddressCountry, workAddressState, workAddressCity, workAddressStreet, workAddressPostalCode, ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK);
// Add address method
private void addAddress(ContentValues row, ArrayList<ContentValues> values, String country, String region, String city, String street, String addressPostalCode, int type) {
row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS, country + region + city + street);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY, country);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.REGION, region);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.CITY, city);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.STREET, street);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE, addressPostalCode);
row.put(ContactsContract.CommonDataKinds.StructuredPostal.TYPE, type);
values.add(row);
}
Adding method
There are three ways to add it. One is to add it silently and store it directly in the database, and the other two are to jump, add it directly or add it to the existing contact
1. Add silently
Take adding a name as an example and insert it directly into the database
// Toward RawContacts.CONTENT_URI Null value insertion,
// Get first Android Returned by the system rawContactId
// Later, based on this id Insert value
Uri rawContactUri = mActivity.getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
// Content type
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
// Contact name
values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, firstName);
values.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, lastName);
values.put(ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME, middleName);
// To contacts URI Add a contact name
mActivity.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
2. Jump Add
Add all row above to the array, 1 pass
ContentValues row2 = new ContentValues();
row2.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
row2.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickName);
0
3. Add to an existing contact
Add all the above row to the array, pass it once, and select a contact after jumping
ContentValues row2 = new ContentValues();
row2.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
row2.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickName);
1
Authority
You can't forget the permissions, otherwise you will flash back and report errors, which are the read and write permissions of contacts respectively
ContentValues row2 = new ContentValues();
row2.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
row2.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickName);
2
So far, the summary is relatively detailed, and there are supplementary comments.
The above is Android to add contacts to the address book of the details of the method, more about Android to add contacts to the address book information please pay attention to the site of other related articles!