안드로이드 개발 질문/답변
(글 수 45,052)
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() 를 타지않고 바로 리턴이 되는 이유를 알수 없습니다..아시는 분 계시면 조언 좀 부탁드립니다..ㅠㅠ




6번째줄에서Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI , projection , query ,null,null);