Symbian主题处理

来源:互联网 发布:http post数据 编辑:程序博客网 时间:2024/04/25 14:31

昨天开始研究主题管理,今天算是有点突破.目前可以枚举出所有主题目录.
处理主题完全的管理还需要时间,至少预览功能到目前还不知如何处理.由于之前
基本没有处理过UI,对部分对UI不熟悉一个LISTBOX就浪费了很多时间.还好
总算做出一个简单的DEMO.特在此总结一下相关的东东.

让我们少费话直接进入话题吧!!
1.下载最新的SDK PLUGIN ExtendedSkinsAPI.ZIP在这里面有主题功能必须的LIB
2.在包里缺少aknskinsinternalcrkeys.h头文件,浪费了我一个小时的时间去查找.
在PersonalizationandSkinsS

ettingsAPI.ZIP中

下载到上述二个包后,工作就可以开始了.
1.连接主题的服务器
RAknsSrvSession iSession;//记着用完之后,R类是要关闭的
User::LeaveIfError( iSession;( this ) );
2.枚举所有主题的ID

CArrayPtr<CAknsSrvSkinInformationPkg>* skinInfoArray = skinsSession.EnumerateSkinPackagesL();
//得到所有的主题项,存放到数组

CleanupStack::PushL( skinInfoArray );

TInt retValue( KErrNone );
    if ( skinInfoArray->Count() > 0 )//主题的个数
    {
    for (TInt i=0; i < skinInfoArray->Count(); i++ )
        {
        TAknsPkgID pkgId = skinInfoArray->At(i)->PID();//得到每个主题的ID
        
         }
    }

skinInfoArray->ResetAndDestroy();

3.得到当前主题的ID
TAknsPkgIDBuf pidBuf;           
CRepository* repository = CRepository::NewL(KCRUidPersonalisation );                   
TInt retVal = repository->Get( KPslnActiveSkinUid, pidBuf );//得到当前主题的ID
delete repository;
repository = NULL;

4.设置当前主题的ID
TAknsPkgIDBuf pidBuf;
aPkgId.CopyToDes( pidBuf );
CRepository* repository = CRepository::NewLC( KCRUidPersonalisation );
TInt retVal = repository->Set( KPslnActiveSkinUid, pidBuf );//设置当前主题的ID
原创粉丝点击