智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > Android Native SDK > 通讯录 搜索联系人

入门使用

搜索联系人

更新时间:2019-11-20

描述

用户可以查询所有部门里面联系人的详细信息。

前提条件

已完成组件的初始化和登录。

业务流程

图1 搜索联系人详情流程 
  1. UI调用TsdkEAddrManager类的searchContacts()方法搜索联系人信息。

     

    说明: 
    • 必选参数:

      搜索关键字、当前需要查找的页面索引(从1开始)、是否精确查找,以及当前查询序号。建议应用程序设置的查询序号从0开始递增,最大值0xFFFFFFFD(0xFFFFFFFE为SDK内部保留值)。

    • 可选参数:

      部门ID,若填写则在指定部门下查询,此处的部门ID默认为第一级部门ID。

    代码示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //java code
    TsdkEAddrManager tsdkEAddrManager = TsdkManager.getInstance().geteAddrManager();
    private int queryContactsInfoSeq = 1;
    
    public int searchContacts(String keyWords)
    {
        int seq = queryContactsInfoSeq++;
        if (null == keyWords)
        {
            Log.e(TAG, "Search condition is empty");
        }
        TsdkSearchContactsParam searchContactsParam = new TsdkSearchContactsParam();
        searchContactsParam.setDepartmentId("");
        searchContactsParam.setIsExactSearch(0);
        searchContactsParam.setPageIndex(1);
        searchContactsParam.setSearchKeyword(keyWords);
        searchContactsParam.setSeqNo(seq);
        int result = tsdkEAddrManager.searchContacts(searchContactsParam);
        Log.i(TAG, "searchResult -->" + result);
        return seq;
    }
    
     

     

  2. SDK通过TsdkNotify接口中的onEvtSearchContactsResult()方法向UI上报查询联系人信息事件,UI获得所查询的联系人信息内容。

     

    说明: 

    查询到的联系人信息包括:UC帐号、姓名、工号、IP号码、部门名字、职务、邮箱、手机号码、座机号码、家庭电话、性别、邮编、地址、签名和硬终端等。

    代码示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    //Java code
    public void handleSearchContactResult(int querySeqNo, TsdkCommonResult result, TsdkSearchContactsResult searchContactResult) 
    {
        int seqNo = querySeqNo;
        int ret = result.getResult();
        if (ret == 0)
        {
            List<TsdkContactsInfo> contactsInfos = searchContactResult.getContactInfo();
            int totalNum = searchContactResult.getTotalNum();
            if (0 == totalNum)
            {
                notification.onEntAddressBookNotify(EntAddressBookConstant.Event.SEARCH_CONTACTS_NOT_FOUND, null);
            }
            else if (querySelfInfoSeq == seqNo)
            {
                notification.onEntAddressBookNotify(EntAddressBookConstant.Event.SEARCH_SELF_COMPLETE, contactsInfos);
            }
            else
            {
                list = contactsInfos;
                QueryContactsInfoResult queryContactsResult = new QueryContactsInfoResult();
                queryContactsResult.setQuerySeq(seqNo);
                List<EntAddressBookInfo> contactsList = new ArrayList<>();
                for (TsdkContactsInfo contactorInfo : contactsInfos)
                {
                    EntAddressBookInfo entAddressBookInfo = new EntAddressBookInfo();
                    entAddressBookInfo.setEaddrAccount(contactorInfo.getStaffAccount());
                    if(contactorInfo.getStaffAccount().isEmpty() || contactorInfo.getStaffAccount() == null)
                    {
                        break;
                    }
                    entAddressBookInfo.setTerminal(contactorInfo.getTerminal());
                    entAddressBookInfo.setEaddrDept(contactorInfo.getDepartmentName());
                    entAddressBookInfo.setSysIconID(10);
                    contactsList.add(entAddressBookInfo);
                }
                queryContactsResult.setList(contactsList);
                notification.onEntAddressBookNotify(EntAddressBookConstant.Event.SEARCH_CONTACTS_COMPLETE, queryContactsResult);
            }
            Log.i(TAG, totalNum + "Get the total number of returned contacts");
        }
        else
        {
            Log.e(TAG, "Search contacts failed, result -->" + result);
            notification.onEntAddressBookNotify(EntAddressBookConstant.Event.SEARCH_CONTACTS_FAILED, null);
        }
    }
    
     

     

注意事项

无。