MainActivity.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | //버튼 public void mOnContactAdd(View v){ if(v.getId()!=R.id.btnContactAdd){ return; } ContactAdd(); } //연락처 추가 public void ContactAdd(){ new Thread(){ @Override public void run() { ArrayList<ContentProviderOperation> list = new ArrayList<>(); try{ list.add( ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) .build() ); list.add( ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "홍길동") //이름 .build() ); list.add( ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "010-1234-5678") //전화번호 .withValue(ContactsContract.CommonDataKinds.Phone.TYPE , ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) //번호타입(Type_Mobile : 모바일) .build() ); list.add( ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Email.DATA , "hong_gildong@naver.com") //이메일 .withValue(ContactsContract.CommonDataKinds.Email.TYPE , ContactsContract.CommonDataKinds.Email.TYPE_WORK) //이메일타입(Type_Work : 직장) .build() ); getApplicationContext().getContentResolver().applyBatch(ContactsContract.AUTHORITY, list); //주소록추가 list.clear(); //리스트 초기화 }catch(RemoteException e){ e.printStackTrace(); }catch(OperationApplicationException e){ e.printStackTrace(); } } }.start(); } | cs |
Button을 클릭하면 연락처가 추가된다
activity_main.xml
1 2 3 4 5 6 7 8 9 | <Button android:id="@+id/btnContactAdd" android:text="연락처 추가" android:textSize="14dp" android:padding="5dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="mOnContactAdd"/> | cs |
AndroidMenifest.xml
1 2 3 4 5 | <!-- 주소록 권한 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> | cs |
권한추가
결과
만약 API23에서 안되면 Target SDK 버전을 22로하자
'IT > - 프로그래밍' 카테고리의 다른 글
안드로이드 접근성 화면으로 이동하기 : Accessibility Settings (0) | 2016.07.30 |
---|---|
안드로이드 화면 캡쳐하기 : Screen Capture In Android (1) | 2016.07.30 |
안드로이드 라디오버튼 커스텀하기 : Android RadioButton Customize (0) | 2016.07.25 |
안드로이드 체크박스 커스텀하기 : Android Checkbox Customize (0) | 2016.07.24 |
안드로이드 버튼 커스텀하기 - 테두리, 배경색, 그림자 : Android Button Customize (0) | 2016.07.24 |