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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ch_xin/article/details/8364080

问题:定制了四个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;

}


猜你喜欢

转载自blog.csdn.net/ch_xin/article/details/8364080