contact


contact 는 HSP 에서 기본으로 제공하는 API 로 연락처 정보를 추가하거나 불러오는 기능을 제공한다.
AndroidManifest.xml 내 uses-permission 을 추가하면 사용 가능 하다.

Example

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

런타임 퍼미션이 필요한 API 는 아래와 같이 사용 가능 하다. 

HspPermission.check(HspPermission.builder()
    .activity(activity)
    .permission(Manifest.permission.YOU_WANT_PERMISSION)
    .listener((reqCode, result) -> {
        if (result) {
            TODO
        } else {
            TODO
        }

        return null;
    })
    .build());

contact 는 Android 에서 제공하는 Contact 기능의  Wrapper class 이며 주소록 추가, 삭제, 찾기 기능을 지원 한다.


add

add 는 주소록 정보를 추가하는 기능이다. 이때 사용자 이름, 이메일주소, 전화번호를 입력할 수 있다. 

이때 주소록 데이터를 입력하기 위해서는 아래 AddContact 클래스를 이용하여 데이터를 입력해야 하며 각각의 정보는 하단의 표를 참고 한다. 

AddContact Class

public static class AddContact implements Serializable {
   private String firstName;
   private String lastName;
   private String email;
   private String mobile;
   private String work;
   private String home;
}

AddContact

필드설명M/O
firstNameM
lastName이름M
email이메일 주소O  
mobile핸드폰 번호
work이메일 주소O  
home집 전화번호
   

Example

val contact = DAPContact.AddContact().apply {
    firstName = "길동"
    lastName  = "홍"
    email     = "test@test.net"
    mobile    = "01012341234"
}

DAPContact.add(this@MainActivity, contact, {
   // TODO
}) {
   // TODO
}
DAPContact.AddContact contact = new DAPContact.AddContact();
contact.setFirstName("길동");
contact.setLastName("홍");
contact.setEmail("test@test.net");
contact.setMobile("01012341234");

DAPContact.add(MainActivity.this, contact, result -> {
       // TODO
   }, e -> {
       // TODO
   });

remove

remove 는 등록되어 있는 주소록을 삭제하는 기능이다. 삭제할 기준 값은 find 를 통해 얻은 id 값으로 삭제 할 수 있다.

options

필드설명M/O
idid 값은 find 로 얻은 개별 주소록에 Primary Key 값이다.M
   

Example

val id = "1"    // find 로 얻은 contact 의 id 값

DAPContact.remove(this@MainActivity, id, {
   // TODO
}) {
   // TODO
}
String id = "1";    // find 로 얻은 contact 의 id 값

DAPContact.remove(MainActivity.this, id, result -> {
       // TODO
   }, e -> {
       // TODO
   });

find

find 는 등록되어 있는 주소록에 전화번호, 이름, 이메일 주소를 이용하여 원하는 주소록을 얻어 ContactData 형태로 반환 한다.  

ContactData 클래스 정보와 각각의 변수 정보는 하단의 표를 참고 한다.

ContactData Class

public static class ContactData implements Serializable {
   public String id;
   public String displayName;
   public final List<Map<String, String>> phoneNumbers;
   public final List<String> email
}

ContactData

필드필드필드필드설명
ContactData   options에 해당되는 주소록 목록 배열
id  검색된 개별 주소록의 Primary Key 값
displayName  검색된 이름 
phoneNumbers[key][value]검색된 전화번호 목록 배열
각 목록은 전화번호의 Type과 Value로 구성
email  검색된 이메일 목록 배열
     

options

필드설명M/O
fields

검색 대상 Array 필드명들

  • phoneNumbers
  • displayName
  • email
O
filter검색어O
   

Example

val fields = "phoneNumbers, displayName, email"
val searchWord = "홍"

DAPContact.find(this@MainActivity, fields, searchWord, {
   // TODO
}) {
   // TODO
}
String fields = "phoneNumbers, displayName, email";
String searchWord = "홍";

DAPContact.find(MainActivity.this, fields, searchWord, result -> {
       // TODO
   }, e -> {
       // TODO
   });

Error Code

CodeCauseComment
E10200파라메터 값이 잘못되어 있을 경우 
E10201전달된 액션 값이 알 수 없는 액션일 경우 
E10202주소록 정보 추가시 성이 잘못되어 있을 경우 
E10203주소록 정보 추가시 이름이 잘못되어 있을 경우 
E10204주소록 삭제시 개별 주소록에 Primary Key 값이 잘못되어 있을 경우 
E10250실행 중 오류가 발생 되었을 경우 
E10299알 수 없는 오류가 발생 되었을 경우