pre-link的app无法内置显示在idle上

来源:互联网 发布:4k网络电视什么牌子好 编辑:程序博客网 时间:2024/05/17 20:23

问题:定制了四个MRE的pre-linkapp,默认要在idle上显示,编译后无效,所增加的app并不能在idle上显示出现

回答:

现加入到那个table无法生效的原因查明。

是因为在这个表格中,我们会将app name转换成一个id,可以看到API  srv_appmgr_get_id_by_app_package_name的调用。

但是在开机的过程中,s_preInstallTbl这个表是一开始就要初始化。但 MRE app info还没有来得及加载。

g_mre_appmgr_maptable这个表的信息来没来得及写进去。所以我们get到的app id是无效值,自然shortcut无法创建。

请按下面方式来预置:

请覆盖下面这两个虚函数,我这里的例子只预制了一个,如果你要预制多个,请修改相应的数目.

 

VfxS32 VappWidgetShortcutFactory::getPreInstalledNum() const{    return 4;}VfxS32 VappWidgetShortcutFactory::getPreInstalledWidget(    VappWidgetPreInstalled **preInstalled,    VfxS32 size) const{    preInstalled[0]->m_id.assignWith(VAPP_WIDGET_SRC_SHORTCUT, srv_appmgr_get_id_by_app_package_name("mre.vxp.M Bounce Limited.Facebook"));    preInstalled[0]->m_pageIdx = 2;    preInstalled[0]->m_pos = VfxPoint(0, 300);    preInstalled[1]->m_id.assignWith(VAPP_WIDGET_SRC_SHORTCUT, srv_appmgr_get_id_by_app_package_name("mre.shortcut.65860"));    preInstalled[1]->m_pageIdx = 2;    preInstalled[1]->m_pos = VfxPoint(80, 300);    preInstalled[2]->m_id.assignWith(VAPP_WIDGET_SRC_SHORTCUT, srv_appmgr_get_id_by_app_package_name("mre.vxp.Mediatek Inc..Y! Messenger"));    preInstalled[2]->m_pageIdx = 2;    preInstalled[2]->m_pos = VfxPoint(160, 300);    preInstalled[3]->m_id.assignWith(VAPP_WIDGET_SRC_SHORTCUT, srv_appmgr_get_id_by_app_package_name("mre.vxp.General Mobile.Cherry app"));    preInstalled[3]->m_pageIdx = 2;    preInstalled[3]->m_pos = VfxPoint(240, 300);    return 4;}


原创粉丝点击