public static String SearchName(Context context , String PhoneNumber){
String name = "unKnown";
try {
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME };
String[] selectionArgs = null;
String sortOrder = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC";
Cursor contactCursor = context.getContentResolver().query(uri, projection, null,
selectionArgs, sortOrder);
if (contactCursor.moveToFirst()) {
do {
if(PhoneNumber.equals(contactCursor.getString(1))){
return contactCursor.getString(2);
}
} while (contactCursor.moveToNext());
}
} catch (Exception e) {
}
return name;
}
테스트로 액티비티에다가 저함수를 사용해봤는데 잘 작동했는데
전화올때 BroadcastReceiver를 사용해서
TelephonyManager.CALL_STATE_OFFHOOK 일 경우에
이함수를 넣어서 번호를 찾게 했는데 제대로 작동을 안하네요
문제가 뭘까요?
쓰레드를 돌려봐도 똑같네요 ㅠㅠ