Developer MJ Story

[Android/Contacts] 번호를 입력하면 DB저장된 이름을 Return하는 함수 구현 본문

Software/Android

[Android/Contacts] 번호를 입력하면 DB저장된 이름을 Return하는 함수 구현

집근처 2014. 6. 9. 14:47
반응형
  • Android는 사용자가 저장한 주소록을 DB의 형태로 관리
  • DB에 쿼리를 보내 원하는 정보를 얻을 수 있음
  • 아래의 Source Code는 번호를 입력으로 받아 이름을 return하는 함수임

 

    • Source Code

public String SearchName(String PhoneNumber){

        String name = "unKnown";

       

        Cursor phoneCursor = null;

        try{

               Uri uContactsUri ContactsContract.CommonDataKinds.Phone.CONTENT_URI;

               String strProjection ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME;

                      

               phoneCursor = getContentResolver().query(uContactsUrinullnullnullstrProjection);

               phoneCursor.moveToFirst();

               String savedName = "";

               String savedNumber = "";

               int nameColumn phoneCursor.getColumnIndex(Phone.DISPLAY_NAME);

               int numberColumn phoneCursor.getColumnIndex(Phone.NUMBER);

               while(!phoneCursor.isAfterLast()){

                       savedName phoneCursor.getString(nameColumn);

                       savedNumber = phoneCursor.getString(numberColumn);

                       if(PhoneNumber.equals(savedNumber)){

                              return savedName;                             

                       }

                       phoneCursor.moveToNext();

               }              

        }catch(Exception e){

               Log.e(TAG,e.toString());

        }       

return name;

}


 

  • 주소록의 URI인 'uContactsUri' 로 쿼리를 보냄
  • 'getContentResolver()'를 통해 주소록의 Cursor 값을 받아옴
  • 'getColumnIndex(Phone.DISPLAY_NAME)'로 저장되어 있는 사용자의 이름의 Cursor 값을, 'phoneCursor.getColumnIndex(Phone.NUMBER)'로 저장되어 있는 사용자의 폰 번호의 cursor 값을 받아옴
  • while문은 Cursor가 끝을 가리킬 때 까지 loop문을 실행하고, 'getString()'을 통해 해당 Cursor 값에 저장되어 있는 String 값을 각각의 변수에 저장하여 입력으로 받은 번호 값과 일치하는 번호 값을 찾아내어 해당 Cursor 값에 저장되어있는 사용자의 이름을 return


반응형