안드로이드 개발 질문/답변
(글 수 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
);