4

如何按从键盘输入的号码搜索联系人?我认为 android 已经实现了 T9 算法,但是我该如何使用这个实现呢?

4

1 回答 1

0

我还没有测试过这个......可能这会有所帮助..

    String contactId = "";
String contactName = "";

private void retrieveContactRecord(String phoneNo) {
    try{
        Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNo));
        String[] projection = new String[] { ContactsContract.PhoneLookup._ID, ContactsContract.PhoneLookup.DISPLAY_NAME };
        String selection = null;
        String[] selectionArgs = null;
        String sortOrder = ContactsContract.PhoneLookup.DISPLAY_NAME+ " COLLATE LOCALIZED ASC";
        ContentResolver cr = mContext.getContentResolver();
        if(cr != null){
            Cursor resultCur = cr.query(uri, projection, selection, selectionArgs, sortOrder);
            if(resultCur != null){
                while (resultCur.moveToNext()) {
                    contactId = resultCur.getString(resultCur.getColumnIndex(ContactsContract.PhoneLookup._ID));
                    contactName = resultCur.getString(resultCur.getColumnIndexOrThrow(ContactsContract.PhoneLookup.DISPLAY_NAME));
                    Log.e("Info","Contact Id : "+contactId);
                    Log.e("Info","Contact Display Name : "+contactName);
                    break;
                }
                resultCur.close();
            }
        }
    }
    catch(Exception sfg){
        Log.e("Error", "Error in loadContactRecord : "+sfg.toString());
    }
}
于 2014-08-14T12:54:23.683 回答