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

本文介绍了解决预装MRE应用未能在Idle界面上正常显示的问题。通过覆盖特定函数并设置正确的应用程序ID、位置等参数,确保预装应用能够正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值