且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

广播有意接触添加/编辑/改变 - 机器人

更新时间:2023-11-19 11:46:40

更​​好的替代解决方案在这里,

Better alternate solution here,

添加以下的的Manifest.xml权限

add following permission in Manifest.xml

<uses-permission android:name="android.permission.WRITE_CONTACTS" />

然后

private void saveContact(String name, String number){
                /**Code to save the contact*/
                ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); 
                op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
                        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) 
                        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) 
                        .build()); 

                op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
                        .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
                        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
                        .withValue(StructuredName.FAMILY_NAME, ""+name) 
                        .build()); 

                op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
                        .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
                        .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                        .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, ""+number)
                        .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, Phone.TYPE_MOBILE)
                        .build());
                try{ 
                    getContentResolver().applyBatch(ContactsContract.AUTHORITY, op_list); 
                }catch(Exception e){ 
                    e.printStackTrace(); 
                } 

            }

CHEERS:)

CHEERS :)