public String getPhoneNameNumber(String phoneNumber) {

  String query = ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + phoneNumber + "'";
    String[] projection = new String[] { ContactsContract.Contacts._ID,  ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER };

Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI , projection , query  ,null,null);
  String name = "";

  if (null != cursor) {
   try {
    while (cursor.moveToNext()) {
                    name = cursor.getString(1);
                    name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
    }
   } finally {
    cursor.close();
   }
  }
  return name;
 }


전화번호를 파라미터로 받아서 주소록에서 일치하는 번호가 있으면 그 번호에 저장되어 있는 이름을 가져와 리턴하려고 합니다.
에뮬상에서는 name값이 잘 넘어가는데 단말기(이자르폰) 에서 테스트하면 name값이 넘어가지 않습니다.
로그로 찍어보니 while (cursor.moveToNext() 를 타지않고 바로 리턴이 되는 이유를 알수 없습니다..아시는 분 계시면 조언 좀 부탁드립니다..ㅠㅠ