| 12345678910 | import android.content.ContentPRoviderOperation;import android.content.ContentProviderResult;import android.content.Context;import android.content.OperationapplicationException;import android.os.RemoteException;import android.provider.ContactsContract;import android.provider.ContactsContract.CommonDataKinds.Phone;import android.provider.ContactsContract.CommonDataKinds.StructuredName;import android.provider.ContactsContract.Data;import android.provider.ContactsContract.RawContacts; |
| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | publicvoidWritePhoneContact(StringdisplayName,Stringnumber,Contextcntx/*App or Activity Ctx*/){Contextcontetx=cntx;//Application's context or Activity's contextStringstrDisplayName= displayName;// Name of the Person to addStringstrNumber= number;//number of the person to add with the ContactArrayList<ContentProviderOperation>cntProOper=newArrayList<ContentProviderOperation>(); intcontactIndex=cntProOper.size();//ContactSize //Newly Inserted contact // A raw contact will be inserted ContactsContract.RawContacts table in contacts database. cntProOper.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)//Step1 .withValue(RawContacts.ACCOUNT_TYPE,null) .withValue(RawContacts.ACCOUNT_NAME,null).build()); //Display name will be inserted in ContactsContract.Data table cntProOper.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)//Step2 .withValueBackReference(Data.RAW_CONTACT_ID,contactIndex) .withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE) .withValue(StructuredName.DISPLAY_NAME,strDisplayName)// Name of the contact .build()); //Mobile number will be inserted in ContactsContract.Data table cntProOper.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)//Step 3 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,contactIndex) .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER,strNumber)// Number to be added .withValue(Phone.TYPE,Phone.TYPE_MOBILE).build());//Type like HOME, MOBILE etc try { // We will do batch operation to insert all above data //Contains the output of the app of a ContentProviderOperation. //It is sure to have exactly one of uri or count set ContentProviderResult[]contentProresult=null; contentProresult=contetx.getContentResolver().applyBatch(ContactsContract.AUTHORITY,cntProOper);//apply above data insertion into contacts list } catch(RemoteExceptionexp) { //logs; } catch(OperationApplicationExceptionexp) { //logs } } |
代码说明:
| 1 | WritePhoneContact(String displayName, String number,Context cntx /*App or Activity Ctx*/) |
| 1234567891011 | @OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_contacts_backup_restore); // Pass below variable <em>cntx</em> into the WritePhoneContact() function as third variable.<em>Contextcntx</em>=getApplicationContext();// get application context //Now call below function to do the real task for you. WritePhoneContact("John","9999999999",cntx); } |
| 1234 | //Add below packages in your java classimport android.net.Uri;import android.content.Intent;import android.provider.ContactsContract; |
| 1234567 | //Then add below code for inserting a new contact using intent//create a new intent for inserting contactIntentcontactIntent=newIntent(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT,ContactsContract.Contacts.CONTENT_URI);contactIntent.setData(Uri.parse("tel:+919999999999"));//Add the mobile number herecontactIntent.putExtra(ContactsContract.Intents.Insert.PHONE,"John");//ADD contact name here //Below Start activity function will display the Add contacts native screen along with your input data startActivity(contactIntent); |
新闻热点
疑难解答