mtk 开发入门遇到的问题

本文详细介绍了如何在手机设置菜单中添加特定功能项,并通过修改资源文件实现调频广播的快捷键设置。同时,提供了解决编译错误和调整默认语言的方法,以及解决弹出菜单文本显示问题的步骤。

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

常用编译命令
make * gprs resgen %*
make * gprs codegen_modis
make * gprs gen_modis
 
make * gprs new
make * gprs new_modis
make * gprs remake %*
 
菜单添加
1)
在plutommi/mmi/Inc/GlobalMenuItems.h 中添加定义
typedef enum _GLOBALMENUITEMSID
{
MENU_ID_PHNSET_FONT_SIZE,
};
 
2)此处添加仅setting菜单项下,所以文件为plutommi/Customer/CustResource/PLUTO_MMI/Res_MMI/Res_Setting.c
void PopulatePhoneSetupMenuRes(void)
{
ADD_APPLICATION_MENUITEM2(MENU_IDLE_SCR_DISP, MAIN_MENU_SETTINGS_MENUID,      /* menu account */
                              MENU_ID_PHNSET_FONT_SIZE, ...); //Fonts
 

ADD_APPLICATION_MENUITEM_HILITE_HANDLER(MENU_ID_PHNSET_FONT_SIZE, HighlightPhnsetFontSize);
}
 
3)
添加高亮显示时的函数
void HighlightPhnsetFontSize(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
 
    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* 1 Change left soft key icon and label */
    ChangeLeftSoftkey(STR_GLOBAL_OK, 0);
 
    /* 2 Change right soft key icon and label */
    ChangeRightSoftkey(STR_GLOBAL_BACK, 0);
 
    /* 3 Register function for left soft key */
    SetLeftSoftkeyFunction(EntryPhnsetFontSize, KEY_EVENT_UP);
 
    /* 4 Register function for right soft key */
    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
 
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
 
    SetKeyHandler(EntryPhnsetFontSize, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
}
 
4)进入函数
void EntryPhnsetFontSize(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
 
    U8 nNumofItem = 5;
 U8 i = 0;
    U16 nStrItemList[] =
    {
        STR_ID_PHNSET_TITLE_FONT_SIZE,
   STR_ID_PHNSET_LIST_FONT_SIZE ,
   STR_ID_PHNSET_SOFTKEY_FONT_SIZE,
   STR_ID_PHNSET_INPUT_FONT_SIZE,
        STR_ID_PHNSET_EXPORT_FONT_SIZE
    };
 U8 *guiBuffer;
 U8 *IdleScrDispType[MAX_SUB_MENUS];
 

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    EntryNewScreen(SCR_ID_PHNSET_FONT_SIZE, NULL, EntryPhnsetFontSize, NULL);
 
    guiBuffer = GetCurrGuiBuffer(SCR_ID_PHNSET_FONT_SIZE);
 nNumofItem = GetNumOfChild(MENU_ID_PHNSET_FONT_SIZE);
 
 
 
    for (i = 0; i < nNumofItem; i++)
    {
        memset((S8*) subMenuDataPtrs[i], 0, MAX_SUB_MENU_SIZE);
        mmi_ucs2ncpy((S8*) subMenuDataPtrs[i], GetString(nStrItemList[i]), MAX_SUBMENU_CHARACTERS);
    }
 

    SetParentHandler(MENU_ID_PHNSET_FONT_SIZE);
 //进入下级菜单的
 SetHiliteHandler(MENU_ID_PHNSET_TITLE_FONT_SIZE, HighlightPhnsetTitleFontSize);
 SetHiliteHandler(MENU_ID_PHNSET_LIST_FONT_SIZE, HighlightPhnsetListFontSize);
 SetHiliteHandler(MENU_ID_PHNSET_SOFTKEY_FONT_SIZE, HighlightPhnsetSoftKeyFontSize);
 SetHiliteHandler(MENU_ID_PHNSET_INPUT_FONT_SIZE, HighlightPhnsetInputFontSize);
 SetHiliteHandler(MENU_ID_PHNSET_EXPORT_FONT_SIZE, HighlightPhnsetExportFontSize);
 
    RegisterHighlightHandler(ExecuteCurrHiliteHandler);
 //RegisterHighlightHandler(highlightEntryPhnsetFontSel);
    /*ShowCategory11Screen(
        STR_ID_PHNSET_FONT_SIZE,
        MAIN_MENU_TITLE_SETTINGS_ICON,
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        nNumofItem,
        nStrItemList,
        g_phnset_cntx_p->font_size,
        guiBuffer);*/
 ShowCategory52Screen(
        STR_ID_PHNSET_FONT_SIZE,
        IMG_SCR_SETTING_CAPTION,
        STR_GLOBAL_OK,
        IMG_GLOBAL_OK,
        STR_GLOBAL_BACK,
        IMG_GLOBAL_BACK,
        nNumofItem,
        nStrItemList,
        (PU16) gIndexIconsImageList,
        IdleScrDispType,
        1,
        0,
        guiBuffer);
 
    //SetLeftSoftkeyFunction(PhnsetSetFontSize, KEY_EVENT_UP);
    SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
    SetKeyHandler(0, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
 
    return;
}
 
调频广播接口
mmi_fmrdo_highlight_menu
mmi_fmrdo_run_app
快捷键设置接口
HighlightDedicatedKeys
 
添加调频广播快捷键需要在resource_shortcuts.c里
const shct_item_struct gShctCandList[SHCT_MAX_CANDI_LIST]=
{
...
};中添加
{0, MENU_ID_FMRDO_MAIN},
即可
 
去掉设置中快捷菜单设置中默认选择项,去掉resource_shortcuts.c文件里const shct_item_struct gShctDefaultList[SHCT_MAX_SEL_LIST]=
{
...
};里面的对应内容即可。
 
编译出错可以尝试删去所有后缀为“*.keep*”的文件
找编译错误的方法:搜索build/log文件夹下包含“error:”的文件
 
ClearCase使用:
上一个bug关闭以后,需要再建一个分支,ClearCase工作目录中右击项目根目录,“export types”然后选择"brance type "然后右击弹出菜单,选择创建。填
 
入名字,如Nollc00025129_qingyang.li
 
修改默认语言,需要修改nvram中的值custom/common/pluto_mmi/common_mmi_cache_config.c
BYTE_ENTRY(NVRAM_SETTING_LANG,
               NVRAM_APP_PHNSET,
               NVRAM_CACHE_ID_RESERVED,
               KAL_TRUE,//这是还原出厂设置时是否需要保存的标识位
               "Current language",
               0X01),最后一项为语言的默认值,中文为0x01
 
弹出菜单没有文本显示,查看字符串资源是否添加了。如果没有添加,添加。字符串资源添加了,需要使用ADD_APPLICATION_STRING2()添加进代码中
 
Tone setup 铃声设置中来电铃声按键没反应,说明回调函数调用不成功,查看是否绑定了回调函数,若没有绑定,绑定即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值