zoukankan      html  css  js  c++  java
  • incallui中如何查询联系人数据

    联系人信息显示在CallCard中,提示当前正在通话的联系人号码、姓名、头像、号码类型等信息;

    • 代码中在两个地方发起对当前联系人的查询,

    Init():startContactInfoSearch(call, true, call.getState() == Call.State.INCOMING); // 界面第一次启动

    onStateChange():maybeStartSearch(mPrimary, true); // call状态改变,primary call has changed

     

    图表 callerinfo查询流程

     

    • 查询结束后对UI的刷新过程,

    ContactInfoCache中申明了这个接口:

    public interface ContactInfoCacheCallback {

    public void onContactInfoComplete(String callId, ContactCacheEntry entry);

    public void onImageLoadComplete(String callId, ContactCacheEntry entry);

    }

    分别用于联系人信息,头像查询结束后的回调操作,在CallCardPresenter中实现。

    CallCardPresenter中查询联系人信息时传入参数new ContactLookupCallback(this, isPrimary)ContactInfoCache中保存下来mCallBacks,用作回调;


    CallerInfoAsyncQuery中申明了这个接口:

    public interface OnQueryCompleteListener {

    public void onQueryComplete(int token, Object cookie, CallerInfo ci);

    }

    ContactInfoCache中对其进行实现,并将实现类传递到CallerInfoAsyncQuery中,用作查询完成之后的回调方法。完成查询后,onQueryComplete()方法中取得mCallBacks,并将结果应用到CallCard中对应的view上显示出来。


    • 头像的查询与加载,

    联系人信息查询完成之后,如果phoneUri不为空,需要通过ContactsAsyncHelper.startObtainPhotoAsync(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE, mContext, cacheEntry.displayPhotoUri, ContactInfoCache.this, callId);来加载联系人头像。


    ContactsAsyncHelper也是通过start一个新线程执行加载操作,加载完成用回调方式显示在CallCard界面。

  • 相关阅读:
    C# webBrowser模拟登陆填充操作等(写网页注册机之类的时候要用到)
    【FLASH教程】Adobe Flash CS4 官方中下载及安装
    [转载]下载rtmpe协议的视频文件
    SQLite操作的帮助类
    Windows及.NET Framework版本检测工具
    纪念一个曾经的软件产品(六)——快捷方式,联系人,任务管理器
    ASP.net Web API综合示例
    Task及其异常处理的若干事项
    Macbook换硬盘导系统
    【转】 矩阵分解方法及 在推荐系统中的应用
  • 原文地址:https://www.cnblogs.com/caidi/p/4139933.html
Copyright © 2011-2022 走看看