First, read the contact
(1). read contact_id from Raw_contact table
(2). Read data1 from the data table
(3). Read MimeType from Mimetypes
1.androidmanifest.xml Adding Content Permissions
<?XML version= "1.0" encoding= "Utf-8"?><Manifestxmlns:android= "Http://schemas.android.com/apk/res/android" Package= "Com.example.writecontact"Android:versioncode= "1"Android:versionname= "1.0" > <USES-SDKandroid:minsdkversion= "8"android:targetsdkversion= "+" /> <uses-permissionAndroid:name= "Android.permission.READ_CONTACTS"/> <uses-permissionAndroid:name= "Android.permission.WRITE_CONTACTS"/> <ApplicationAndroid:allowbackup= "true"Android:icon= "@drawable/ic_launcher"Android:label= "@string/app_name"Android:theme= "@style/apptheme" > <ActivityAndroid:name=". Mainactivity "Android:label= "@string/app_name" > <Intent-filter> <ActionAndroid:name= "Android.intent.action.MAIN" /> <categoryAndroid:name= "Android.intent.category.LAUNCHER" /> </Intent-filter> </Activity> </Application></Manifest>
2.mainactivity.java
Packagecom.example.readcontact;ImportAndroid.content.ContentResolver;ImportAndroid.database.Cursor;ImportAndroid.net.Uri;ImportAndroid.os.Bundle;Importandroid.support.v7.app.ActionBarActivity;ImportAndroid.view.Menu;ImportAndroid.view.MenuItem;ImportAndroid.view.View; Public classMainactivityextendsactionbaractivity {@Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); } Public voidClick (View view) {//get data from a raw_contact tableUri uri = uri.parse ("Content://com.android.contacts/raw_contacts"); //get the data in the View_data viewUri Datauri = Uri.parse ("Content://com.android.contacts/data"); Contentresolver Resovler=Getcontentresolver (); Cursor Cursor= Resovler.query (URI,NULL,NULL,NULL,NULL); while(Cursor.movetonext ()) {String ID= Cursor.getstring (Cursor.getcolumnindex ("contact_id")); System.out.println ("----------raw_contact start-----------"); System.out.println ("Id=" +ID); if(id!=NULL) { //Note that the data in the Data_view view is not in the data table.Cursor datacursor = Resovler.query (Datauri,NULL, "Raw_contact_id=?",NewString[]{id},NULL); while(Datacursor.movetonext ()) {String data= Datacursor.getstring (Datacursor.getcolumnindex ("Data1")); String mimetype= Datacursor.getstring (Datacursor.getcolumnindex ("MimeType")); System.out.println ("Data=" +data+ ", mimetype" +mimetype); } datacursor.close (); } System.out.println ("---------Raw_contact End----------"); } cursor.close (); }}
Second, write the contact
1. Add permissions as read contacts
2, Mainactivity.java
Packagecom.example.writecontact;ImportAndroid.content.ContentResolver;Importandroid.content.ContentValues;ImportAndroid.database.Cursor;ImportAndroid.net.Uri;ImportAndroid.os.Bundle;Importandroid.support.v7.app.ActionBarActivity;ImportAndroid.view.Menu;ImportAndroid.view.MenuItem;ImportAndroid.view.View; Public classMainactivityextendsactionbaractivity {@Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); } Public voidClick (View view) {//get data from a raw_contact tableUri uri = uri.parse ("Content://com.android.contacts/raw_contacts"); //get the data in the View_data viewUri Datauri = Uri.parse ("Content://com.android.contacts/data"); Contentresolver Resovler=Getcontentresolver (); Cursor Cursor= Resovler.query (URI,Newstring[]{"_id"},NULL,NULL,NULL); Cursor.movetolast (); intLastID = Cursor.getint (0); intcontact_id = lastid+1; Contentvalues Values=Newcontentvalues (); Values.put ("CONTACT_ID", contact_id); //adding data to the Raw_contact tableResovler.insert (URI, values); //add phone data to the data tableContentvalues phonevalues =Newcontentvalues (); Phonevalues.put ("Data1", "77777"); Phonevalues.put ("MimeType", "VND.ANDROID.CURSOR.ITEM/PHONE_V2"); Phonevalues.put ("RAW_CONTACT_ID", contact_id); //adding data to the Raw_contact tableResovler.insert (Datauri, phonevalues); //Add name data to the data tableContentvalues namevalues =Newcontentvalues (); Namevalues.put ("Data1", "Zhaoqi"); Namevalues.put ("MimeType", "Vnd.android.cursor.item/name"); Namevalues.put ("RAW_CONTACT_ID", contact_id); //adding data to the Raw_contact tableResovler.insert (Datauri, namevalues); //add phone data to the data tableContentvalues emailvalues =Newcontentvalues (); Emailvalues.put ("Data1", "[email protected]"); Emailvalues.put ("MimeType", "VND.ANDROID.CURSOR.ITEM/EMAIL_V2"); Emailvalues.put ("RAW_CONTACT_ID", contact_id); //adding data to the Raw_contact tableResovler.insert (Datauri, emailvalues); }}
Android Simple read and write contacts