현재 문자가 오면 문자를 뿌려주는데 전화번호부에 있는 사람은 전화번호부를 탐색해서 이름을 띄어주는 부분을 만들고 있습니다.
아래 부분은 문자가 왔을때 BroadcastReceiver로 받고 나서 뿌려주는 부분입니다.


//smsFrom=01012345678 같이 문자가 온 번호입니다.
//문자가 온 번호를 sms에 삽입합니다.
String sms = getIntent().getExtras().getString("smsFrom");

//버전을 체크
  int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
//2.0미만 버전일때.. 이부분은 잘 돌아갑니다.
  if (sdkVersion < Build.VERSION_CODES.ECLAIR) {
  
   String[] projection = new String[]{
     People._ID,
     People.NAME,
     People.NUMBER
   };
   Uri contacts =People.CONTENT_URI;
   
   Cursor cur=managedQuery(contacts, projection, null, null, null);
   if (cur.moveToFirst()) {
        String name;       
        String phoneNumber;       
        int nameColumn = cur.getColumnIndex(People.NAME);      
        int phoneColumn = cur.getColumnIndex(People.NUMBER);      
          
        do {            
             // Get the field values       
             name = cur.getString(nameColumn);       
             phoneNumber = cur.getString(phoneColumn);         
             // Do something with the values.
             //만약 sms가 온 번호가 있다면 이름을 sms에 넣어줍니다.
             if(phoneNumber.equals(sms)){
                  sms=name;
             }

            }while (cur.moveToNext());  
       }
  }
//2.0이상버전일때 부분인데 어떤식으로 접근해야 할지 잘 모르겠네요..
else{

   Cursor cur = getContentResolver().query(
     ContactsContract.Contacts.CONTENT_URI, // Data.CONTENT_URI,
     new String[] { ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME},
     null,
     null,
     null);

  if(cur.getColumnCount()>0){
    //String name;       
    String phoneNumber; 
    int nameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);      
    int phoneColumn = cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
    while(cur.moveToNext()){
     name = cur.getString(nameColumn);   
     Log.i("TRACE",name);
     phoneNumber = cur.getString(phoneColumn);
     Log.i("TRACE",phoneNumber);
    }
   }
}


//이름 같은 경우에는 쉽게 접근이 가능한데.. 전화번호 부분 하는 부분이 너무 어렵네요..

에러가
05-19 01:27:08.615: ERROR/CursorWindow(10561): Bad request for field slot 0,-1. numRows = 1, numColumns = 2
이런데..
아마.. 핸드폰 Type랑 번호 이런게 동시에 받아져서 그런가요?
아무튼.. 문자열을 받아서 번호와 비교해서 그 번호의 저장된 이름을 받는 방법좀 알려주세요.ㅜ