欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

遍历通讯录的一个有关问题

更新时间: 2014-01-05 02:40:53 责任编辑: Author_N1

 

遍历通讯录的一个问题?
// 打开默认通讯录数据库
    CContactDatabase* pDb = CContactDatabase::OpenL();
    if(!pDb)
    {
        return;
    }
    CleanupStack::PushL(pDb);
    
    TContactIter pIter(*pDb);
    TContactItemId cardId;
    TContactItemInfo itemInfo;
    
    // 循环遍历
    while( ( cardId = pIter.NextL() ) != KNullContactId )
    {
        // 读取相应项,这里之所以称其card,就是其实际相当于读一个完整的vCard条目
        // 调用者拥有pCard的Ownship
        CContactItem* pCard = pDb->ReadContactL(cardId);
        if(!pCard)
        {
            continue;
        }
        CleanupStack::PushL(pCard);
     
        // 读取联系人信息
        ...
        
        // 关闭一个联系条目
        pDb->CloseContactL(pCard->Id());
        CleanupStack::PopAndDestroy(pCard); // pCard
    }
    
    CleanupStack::PopAndDestroy(pDb); // pDb 


以上是使用代码,但是在Nokia E52 / Nokia N95 上测试时,多出现二个联系人,联系人的姓名为一大串字母与数字
但是在Nokia 5230上测试的时侯,就没有多出二个联系人的信息。

多出现的联系人的ID(TContactItemId )分别为1,2,其它为331,332...等。

还有我用
CContactItem* pCard

if(!pCard->IsHidden() && !pCard->IsSystem())
进行判断时,还是有那两联系人。


--参考方法--
有没有那们老兄知道啊。
帮自己顶一下。
--参考方法--
if(pCard->Type().iUid & CCntFilter::EContactTemplates)
已经解决,判断一下类型。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:40:53
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13100/
本文WWW.DOC100.NET DOC100.NET版权所有。