首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

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

2012-12-20 
遍历通讯录的一个问题?// 打开默认通讯录数据库CContactDatabase* pDb CContactDatabase::OpenL()if(!p

遍历通讯录的一个问题?
// 打开默认通讯录数据库
    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)
已经解决,判断一下类型。

热点排行