MTK-工作学习笔记
MTK学习心得

MTK平台(1)¡¡如何添加一个窗体模板(一)窗体的重画通过观察可以发现,每个窗体模板都调用这样一个函数:dm_redra w_category_screen()。
这个函数便是显示窗体的函数。
它内部的实现是这样的:获得该窗体所包含的组件及它们的属性,再根据组件的类型和属性,调用不同的接口,逐一绘制各组件。
详细流程如下图所示:由上面的流程可见,无论是窗体所包含的组件,还是组件的属性,都是根据模板ID获取的。
那么现在摆在面前的有两个问题:一、模板ID是如何传递到这个函数中的;二、模板ID和窗体组件、组件的属性,是如何关联到一起的。
我们逐一解决这两个问题。
一、模板ID是如何传递到这个函数中的模板ID,是ShowCa tegory..Screen()过程中,所显示的界面的编号,千万不要与EntryNewScre en(scrID,¡) 函数中传入的窗口ID相混淆。
它们以¡MMI_¡为前缀,被定义在枚举型结构MMI_CATEGORY_ID_LIST中,又通过结构体dm_data_struct和它的全局结构体变量g_dm_data,在应用程序中被广泛使用。
先看看结构体dm_data_struct的定义:typedef struct{S32 s32ScrId;S32 s32CatId;S32 s32flags;}其中,s32ScrId是当前窗口ID,也就是我们使用EntryNewScreen ()时传入的那个参数;而s32Ca tId才是模板ID;最后的flag,是模板需要显示软键盘、清屏等动作时,所置的标志变量,它在上面提到的那个dm_redraw_category_screen()函数中被判断。
还是来重点看一下第2个结构体成员s32Ca teId的使用。
以ShowCategory6Screen() 为例。
这个显示模板的函数中,经常可以看到这样的语句:dm_data.s32ScrId = (S32)GetActiveScreenId();dm_data.s32CatId = MMI_CATEGORY6_ID;dm_data.s32flags = 0;dm_setup_data(&dm_data);再看dm_setup_data()干了什么:void dm_setup_da ta(dm_d ata_struct *dm_data){g_dm_da ta.s32CatId = dm_data->s32CatId;g_dm_da ta.s32ScrId = dm_da ta->s32ScrId;g_dm_da ta.s32flags = dm_data->s32flags;}这样,MMI_CATEGORY6_ID就被很自然的赋到g_d m_data.s32ScrId中了,然后随着这个全局变量,顺利的被带到了dm_redraw_ca tegory_screen()中。
MTK知识点小结

14.一个窗体的绘制过程:
获取窗体模版的ID; // 这个在showcategory里面实现,dm_data.s32CatId =
MMI_CATEGORY52_ID;
根据模版的ID得到组件的集合和个数;
// control_set_ptr = dm_search_control_set((U16) g_dm_data.s32CatId,
SetParentHandler(MITEM_OPT_PSEUDO);
6、注册highlight 函数
RegisterHighlightHandler(ExecuteCurrHiliteHandler);
7、在已经获取了以上信息后,绘制当前的窗口:
ShowCategory1Screen(
STR_SCR1002_CAPTION,
3、获取列表窗口的子菜单数目;
number_of_items = GetNumOfChild_Ext(MITEM_OPT_PSEUDO);
4、获取要显示的字符串序列;
GetSequenceStringIds_Ext(MITEM_OPT_PSEUDO, list_of_items);
5、设置当前窗口的父窗口的ID;
6.BDN- barred dial number 禁止拨打的号码
7.ADN-Abbreviated Dialing Num 电话号码缩写
8.暗码:手机出厂时用来调试的一些指令。如*#06#
IM-Universal Subscriber Identity Module(全球用户识别卡)的缩写。全球用户身份模块(USIM),也叫做升级 SIM ,是在UMTS 3G 网络的一个构件。
MTK学习笔记

1.如何判断手机中是否插入sim卡方法1:判断标志gInsertSimAppFlag是否为1,为1时,有SIM卡,为0时,无SIM卡方法2:if(g_pwr_context.PowerOnSIMStatus & MMI_SIM_STATUS_NOT_INSERT) return FALSE;elsereturn TRUE;方法3:IsSATPresent();为0时无SIM卡,为1时有SIM卡方法4:判断DRV_Reg(SIM_CTRL)的值,为1时有SIM卡,为0时,无SIM卡。
方法5:MTPNP_BOOL MTPNP_PFAL_Is_Card1Absent(void);MTPNP_BOOL MTPNP_PFAL_Is_Card2Absent(void);2.菜单隐藏的实现如在娱乐游戏下菜单隐藏,#if defined(DMG_SKIPEGG_DEF)if (0 == gInsertSimAppFlag){mmi_frm_unhide_menu_item(MENU_ID_FNG_SKIPEGG);}else{mmi_frm_hide_menu_item(MENU_ID_FNG_SKIPEGG);}#endifnItems = GetNumOfChild_Ext(MAIN_MENU_FUNANDGAMES_MENUID);//修改对应的三个函数为_Ext形式。
GetSequenceStringIds_Ext(MAIN_MENU_FUNANDGAMES_MENUID, ItemList);GetSequenceImageIds_Ext(MAIN_MENU_FUNANDGAMES_MENUID, ItemIcons);3.关于History手机中的屏幕流程都是顺序的,用户都是通过按键在屏幕之间切换。
这里有三种类型的屏幕切换,即1 向前移动向下一个屏幕的切换作为用户按键输入的结果。
2 向后移动向前一个屏幕的切换作为用户按键输入的结果。
300条MTK工作笔记

(__ON__)
魔音通话: VOICETONE_PITCHSHIFT = TRUE g_imui_ui_param.imui_bottom = MMI_content_y + MMI_content_height - 1-100; handle_inline_full_screen_edit_complete 7900 修改 imui.c 这个文件 34.关机时退出系统: QuitSystemOperation (shutdownapp.c) 35.来电黑名单: CFG_MMI_CM_BLACK_LIST 36. 如果没有触摸屏,请注意将手写也关闭掉,否则编译不过 TOUCH_PANEL_SUPPORT = NONE HAND_WRITING = NONE HAND_WRITING_CHS_SUPPORT = FALSE 37.打印 出错信息 MMISWChangeWarning 38.开机搜索界面 ShowCategory120Screen 39. 23 平台上的拨号大字体 #define CFG_MMI_PHB_GENERIC_MULTI_SELECT (__OFF__) 这个宏打开时,发短信从电话簿选择的时候,会有两个选项,无触摸屏时关掉 CFG_FULL_DIAL_SCREEN_WITH_PICTURE 40. 发短信时,从电话簿添加 mmi_sms_recipient_add_from_contacts
20.手电筒的宏: FLASHLIGHT_TYPE
21.出厂时间:custom_hw_default.c const kal_uint8 DEFAULT_HARDWARE_YEAR = 8; //2008 const kal_uint8 DEFAULT_HARD8 DEFAULT_HARDWARE_DAY = 1; 22. 双卡双待: 只有一个拨号键的时候,需要弹出选择拨号界面 SENDKEY_MODE = SINGLE_KEY_SELECT_MENU #SENDKEY2_SUPPORT 有两个拨号键的时候: SENDKEY_MODE = SENDKEY2_SUPPORT #SENDKEY2_SUPPORT 23.智能拼图 #define CFG_MMI_GAME_PUZZLE (__AUTO__) 24. 相机设置的默认值: MMI_features_camera.h #define CAMERA_DEFAULT_SETTING_BANDING CAMERA_SETTING_BANDING_60HZ 25.开关机图片格式: #define CFG_MMI_RES_TYPE_POWER_ONOFF_SEL (__RES_TYPE_GIF__) 26. 号码归属地存于 T 卡中 #define GFG_MMI_INCOMINGCALL_DATA_IN_TCARD (__AUTO__) 获取手机号码归属地的函数: FetchMobileHomeArea
MTK个人笔记

6、查看进入MTK手机工程模式的指令可在CustResDef.h里,对应值为:SSC_ENGINEERING_MODE。
7、打包命令:armar -r *.a(或者*.lib) *.obj,解包命令:armar -x *.a,执行时都要先运行到obj或者库文件目录下。
22、Idle界面里面的触摸屏函数实现,是通过屏幕模板ShowCategory33Screen实现的,在wgui_categories_idlescreen.c里函数ShowCategory33Screen_ext里有注册,如:
wgui_register_category_screen_control_area_pen_handlers(wgui_cat033_pen_down_handler, MMI_PEN_EVENT_DOWN);注册点下触摸时的响应函数,然后我们可以在此响应函数里设置我们需要的屏幕位置的响应函数。
20、函数TurnOnBacklight(GPIO_BACKLIGHT_SHORT_TIME);用于把手机从背光中开启出来高亮屏幕一小段时间,参数也可换成GPIO_BACKLIGHT_PERMANENT(长久。
21、函数ForceSubLCDScreen(mmi_msg_start_msg_sub_anm)用于强制开启小屏幕提醒界面的,里面的参数只是举例,是提示有新短信收到的,在该函数里还需要调用屏幕模板来实现小窗口,这里用的是ShowCategory304Screen,然后会设置SetSubLCDExitHandler(mmi_msg_callback_msg_sub_anm);停止小窗口。
MTK平台驱动调试笔记

分类:LINUX一、【一】调试串口的设置驱动的调式过程经常需要通过trace工具看log的,trace前需要修改手机串口,有以下三种方法设置串口1 通过手机进入工程模式设置2 修改代码,修改Nvram_user_config.c中的NVRAM_EF_PORT_SETTING_DEFAULT[]3.通过META工具修改在连上meta:左上角选中NVRAM Editor,在跳出的对话框里选择other LID,再选择NVRAM_EF_PORT_SETTING_LID,接下来read from nvram,对话框右边就会出现串口的设置情况,对调tst_port_ps(输入0)和ps_port(输入99)的值,二【【二】关于gpio口Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。
代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):GPIO_ModeSetup(25, 0);设置GPIO25为模式0GPIO_InitIO(1,25);初始化GPIO25方向为输出GPIO_WriteIO(0, 25 );设值GPIO25输入低电平0三、【三】键盘设置1)键盘定义Keypad_def.c如果定义CUST_NEW,工具中的键盘定义对应在改文件里的KEYPAD_MAPPING(keypad_drv.h);2)硬件键盘定义与软件mmi键盘的对应nKeyPadMap[](Keybrd.c)3)工程模式键盘测试函数EntryFMKeypadTest()修改键盘测试时界面显示的键的名称1. 做好上面的第一第二两步2. FactoryModeSrc.c开始部分定义添加的键所要显示的名称,值,分别应用到keypad_layout[](确定要显示的位置),keypad_value[]3.在EntryFMKeypadTest()函数中的数组IdleScreenDigits[]里添加要显示的键4)如果要设置一个键不管在什么界面下都起作用的话(如手电筒开关或则其他需求)就需要在键盘的事件响应函数static voidKeyEventHandler(KEYBRD_MESSAGE *eventKey)里设置,根据键值条用相应的响应函数,不过该函数及时在锁屏状态下也会执行的,需要根据需要添加条件语句四、关于LCDlcm背光驱动分为两种控制方式:1. pwm这个是通过调占空比来调节亮度的持续信号;2. PFM这个是通过脉冲的个数来控制LCM背光亮度。
MTK 智能手机开发, android,安卓 AOSP学习笔记

对于5.0的系统是要求的ubuntu 12.041 新代码第一步执行:source build/envsetup.sh (此命令完成一些命令的初始化,配置了android编译的环境)2 执行lunch 命令(选择平台编译选项,用来让用户选择编译项,类似于旧框架的./mk listp)3 输入所需要编译的工程(这里需要编译82平台输入20),会显示相关的一些信息(1)A: ProjectConfig.mk路径:alps\device\farsighted\fars6582_wt_l(2)B: Drvtool路径:alps\kernel-3.10\tools\dct(3)C: Codegen.dws路径alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\dct\dct(4)D: flash时序表路径:alps\device\mediatek\build\build\tools\emigen\MT6582(5)E: flash配置文路径:alps\bootable\bootloader\preloader\custom\fars6582_wt_l\inc(6)F: 背光,键盘灯配置文路径:kernel :alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\leds\ mt65xxlk:alps\bootable\bootloader\lk\target\fars6582_wt_l(7)G: TP驱动路径:alps\kernel-3.10\drivers\input\touchscreen\mediatekTP 用户头文件配置路径:alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\touchpanel\ GT9XX新增TP还需要在以下文件增加编译路径:***新增TP还需要在以下文件增加编译路径:alps\kernel-3.10\drivers\input\touchscreen\mediatek\ Makefilealps\kernel-3.10\drivers\input\touchscreen\ KconfigTP mk文件配置(8)H: LCM驱动存放路径lk:alps\bootable\bootloader\lk\dev\lcm\ mt65xx_lcm_list.c配置文件:Lk部分mk文件配置:alps\bootable\bootloader\lk\project\ fars6582_wt_l.mkBOOT_LOGO有两处alps\bootable\bootloader\lk\project\ fars6582_wt_l.mkalps\bootable\bootloader\lk\dev\logo\ rules.mkKernel部分:lcm驱动:alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\lcm\此目录下只放.c文件,不需要文件夹alps\kernel-3.10\drivers\misc\mediatek\lcma:链接obj alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\lcm\ MakefileB:编译路径alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\lcm\ mt65xx_lcm_list.cC:kernel mk文件配置路径:alps\kernel-3.10\arch\arm\configs\ fars6582_wt_l_defconfigKerner config配置建议使用menuconfig命令make dir outmake O=out fars6582_wt_l_debug_defconfig(这是对应的项目配置文件)make O=out menuconfig(进不去的同学可看看后面的补充)(9)I: CAMERA 配置:1 alps\device\farsighted\fars6582_wt_l\ProjectConfig.mk2 hal目录3 驱动目录4 涉及修改的文件MT6582_L0\alps\kernel-3.10\drivers\misc\mediatek\imgsensor\inc\kd_imgsensor.hMT6582_L0\alps\kernel-3.10\drivers\misc\mediatek\imgsensor\src\mt6582\kd_sensorlist.hMT6582_L0\alps\vendor\mediatek\proprietary\custom\fars6582_wt_l\hal\imgsensor_src\sensorlist .cppalps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\camera\camera\kd_camera_hw.calps\vendor\mediatek\proprietary\custom\common\kernel\imgsensor\inc\kd_imgsensor.h(10)J: Gsensor,alps配置:1 1 alps\device\farsighted\fars6582_wt_l\ProjectConfig.mk2 驱动目录MT6582_L0\alps\kernel-3.10\drivers\misc\mediatek\alspsMT6582_L0\alps\kernel-3.10\drivers\misc\mediatek\ accelerometer3 custom文件alps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\accelerometeralps\kernel-3.10\arch\arm\mach-mt6582\fars6582_wt_l\ alsps4 makefilealps\kernel-3.10\drivers\misc\mediatek\alsps\Makefilealps\kernel-3.10\drivers\misc\mediatek\ accelerometer \Makefilealps\kernel-3.10\drivers\misc\mediatek\Kconfig.drivers此makefife加了后menuconfig后才有选项(11)K: Sound 配置1 1 alps\device\farsighted\fars6582_wt_l\ProjectConfig.mk2alps\vendor\mediatek\proprietary\custom\fars6582_wt_l\hal\audioflinger\audio\audio_custom_exp .h3编pl模块需先把项目名赋值我拿到的代码是需要做如下修改才能正常运行menuconfig,如果你们的正常可以忽略以下:Menuconfig需修改的地方:1 MT6582_L0\alps\kernel-3.10\Makefile修改如下:2 安装sudo apt-get install libncurses5 libncurses5-dev3 make O(大写字母O)=out menuconfig****需注意的是,如果编完后关闭了窗口再重新打开编译都要运行一次source build/envsetup.sh lunch一些常用编译命令:make –j24 2>&1 | tee build.log (相当于new命令,编译过程会生成build.log文件在alps目录下)-j后面通常是编译主机CPU支持核数2>&1, 表示将标准错误重定向到标准输出tee :同时将LOG输出到控制台和文件preloadermake –j24 pl 2>&1 | tee pl.loglkmake –j24 lk 2>&1 | tee lk.logkernelmake –j24 kernel 2>&1 | tee kernel.log clean commondm ,mm ,mmm,mma打包命令。
MTK系统学习笔记

MTK系统学习笔记D一.LCD驱动函数理解PUBLIC ERR_LCD_E LCD_Init(void);PUBLIC void LCD_Close(void);LCD_GetInfo获取LCD的基本信息。
具体参考LCD_INFO_T的定义。
上层调用此函数,可获取LCD 的信息,如bits-per-pixel以及LCD的BUFFER指针,从而可以实现对LCD的直接操作。
PUBLIC ERR_LCD_E LCD_GetInfo(LCD_ID_E lcd_id,LCD_INFO_T*lcd_info_ptr );对点主屏上点(x,y)写入颜色0X0F0F的实现如下:(假定lcd_info_ptr-> bits_per_pixel = 16)LCD_GetInfo(MAIN_LCD_ID, lcd_info_ptr);uint16 *buf_ptr = (uint16 *)lcd_info_ptr-> lcdbuff_ptr;uint16 lcd_width = lcd_info_ptr->lcd_width;uint16 lcd_height=lcd_info_ptr->lcd_height;*(uint16 *)(buf_ptr + y*lcd_width + x) = 0x0f0f;然后根据需要调用LCD_Invalidate或者LCD_InvalidateRect函数刷新LCD有关区域。
LCD_InvalidateRect刷新LCD 的某一矩形区域。
该函数将LCD BUFFER中的颜色值写入到指定的区域中,如果该指定的区域超出了指定LCD的范围,则该函数将只刷新该指定区域与LCD区域的重叠部分,即LCD范围外的区域无效。
PUBLIC ERR_LCD_E LCD_InvalidateRect(LCD_ID_E lcd_id,uint16 left,uint16 top,uint16 right,uint16 bottom);PUBLIC ERR_LCD_E LCD_Invalidate(LCD_ID_E lcd_id);PUBLIC ERR_LCD_E LCD_EnterSleep(LCD_ID_E lcd_id,BOOLEAN is_sleep);PUBLIC ERR_LCD_E LCD_SetContrast(LCD_ID_E lcd_id,uint16 contrast);typedef struct lcd_info_tag{uint32 r_bitmask;uint32 g_bitmask;uint32 b_bitmask;uint16 bits_per_pixel;uint16 lcd_width;uint16 lcd_height;uint16 contrast_min;uint16 contrast_max;uint16 contrast_defaut;void *lcdbuff_ptr;} LCD_INFO_T;typedef enum{MAIN_LCD_ID = 0,SUB_LCD_ID,MAX_LCD_ID} LCD_ID_E;typedef enum{ERR_LCD_NONE = SCI_SUCCESS,ERR_LCD_FUNC_NOT_SUPPORT,ERR_LCD_PARAMETER_WRONG,ERR_LCD_POINTER_NULL,ERR_LCD_OPERATE_FAIL,ERR_LCD_NOT_FOUND} ERR_LCD_E;Sleep inß当手机在待机状态时,为了节约功耗,要把lcd进入睡眠模式ß设置相关的寄存器/* Power control 1 set SLP bit = 1*/LCD_DRV_WRITE_COMM(0x0010, 0x1a0e);Command!!1、new功能:全新开始构建整个工程的ARM版,包括图片、声音、字符串等资源都要重做。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MTK-工作学习笔记1.加销量统计,机型为A74SMSMsg.c宏SMS_SEND_NOT_SA VE_SUPPORT (销量统计宏)#define PROJECT_NAME "A74"2.音乐播放键无作用(有作用)在idleapp.c中:有sim卡的情况下:mmi_idle_entry_idle_screen 函数中注册这个功能的快捷键#if defined(__CLAMSHELL_F65__)SetKeyHandler(mmi_audply_check_fmr_state, KEY_EXTRA_1, KEY_EVENT_UP);SetKeyHandler(mmi_camera_entry_app_screen, KEY_CAMERA, KEY_EVENT_UP); #endif无sim卡的情况下:在simdetection.c中在EntryScrnSimErrorScreen中注册#if defined(__CLAMSHELL_F65__)SetKeyHandler(mmi_audply_check_fmr_state, KEY_EXTRA_1, KEY_EVENT_UP);SetKeyHandler(mmi_camera_entry_app_screen, KEY_CAMERA, KEY_EVENT_UP); #endif宏: __CLAMSHELL_F65__ 翻盖:CLAMSHELL3.情景模式的默认值修改:应答模式默认不要设置成翻盖接听nvram_common_config.cNVRAM_PROFILES_DEFAULT 第8项将值改为0NVRAM_PROFILES_ACTIV A TED 默认激活的情景模式4.开机动画:\MainLCD\Active\Poweronoff5.壁纸:\MainLCD\Active\Poweronoff#define CFG_MMI_WALLPAPER_NUM (3)6.开合盖声音:resource_audio.cmtk_resource_sounds 数组中开盖:cs03_mid合盖:cs04_mid开机铃声: cs01_mid关机铃声:cs02_mid7.看墙纸类型#define CFG_MMI_RES_TYPE_WALLPAPER_SEL (__RES_TYPE_GIF__)8.ilde界面message和multimedia 位置互换#define CFG_MMI_MAINMENU_EXCHANGE_MSG_AND_MULTIMEDIA (__ON__)9.SIM卡电话号码只能读到150条,至少要读到250条PHB_SIM_ENTRY = 25010.rom空间不够,为了节省ROM空间,将短信条数缩减为300,相关文件: customer_ps_inc.h #define CM_SMS_MAX_MSG_NUM 30011.工厂测试:键盘测试:EntryFMKeypadTest相机测试: FM_AutoTest_CAMERA12.修改menuitem的高度:gui_switch.h#define CFG_UI_MENUITEM_HEIGHT (32)13.自动测试的问题:FactoryModeSrc.ckeypad_layout 和keypad_value14. 开机LOGO显示的地方:MMICheckDiskDisplay15.手机铃声:短信息铃声:resource_audio.cmtk_resource_mms_soundsmtk_resource_mms_sounds 有__MMI_MMS_TEMPLA TE_SUPPORT__ 控制的mtk_resource_message_sounds来电铃声:custpack_audio.c 中0936SLIM平台中:和铉: custpack_audio : 和弦的声音资源放在这个数组里面如果要改变数组的大小,需要修改mtk_resource_midis数组的大小,即:#define MIN_MIDI_ID 151#define MAX_MIDI_ID 160 //165 的大小来电铃声中有铃声,和弦两种铃声对应的数组时:resource_audio.cmtk_resource_imelodys这个数组的大小是:resource_audio.h#define MIN_RING_TONE_ID 101#define MAX_RING_TONE_ID 105 //110目前是 5mtk_resource_imelodys[MAX_RING_TONE_ID - MIN_RING_TONE_ID + 1]修改上网的mms 配置custom_wap_config.c找到custpack_wap_default再找到关于网络的配置:apnnvram_common_config.cNVRAM_EF_ABM_GPRS_PROFILE_DEFAULT16.FM检测耳机的宏:#define CFG_MMI_FM_RADIO_BIND_EARPHONE (__AUTO__)17.一些常用的menuid:MENU_ID_CAMERA_APP : 相机音乐播放器:HighlightAudioPlayerAUDIO_PLAYER_MAIN_MENUIDMESSAGES_MENU_WMESSAGE_MENU_ID : 写短信MAIN_MENU_PROFILES_MENUID : 情景模式ADD_APPLICA TION_MENUITEM_HILITE_HANDLER(MAIN_MENU_PROFILES_MENUI D, highlight_mainmenu_profiles);用到的图片在:plutommi\Customer\Images\PLUTO220X176\MainLCD\Profile短信:MAIN_MENU_MESSAGES_MENUID:ADD_APPLICA TION_MENUITEM_HILITE_HANDLER(MAIN_MENU_MESSAGES_MEN UID, highlight_mainmenu_messages);18.lcd 背光亮度: NVRAM_BYTE_BL_SETTING_LEVELlcd背光时间:NVRAM_BYTE_BL_SETTING_HFTIMEnvram 的默认值都是写在这里的这两个默认值在common_mmi_cache_config.c 文件改动19.设置: MAIN_MENU_SETTINGS_MENUID安全设置: MENU9101_SECURITY键盘锁: MENU9178_AKPL_TIME键盘锁的时间的nvram: NVRAM_SETTING_AUTOKEYPADLOCK_TIME手机设置:MENU9102_INITIAL_SETUPCFG_DISABLE_SHORTCUTS_MENUCFG_MMI_FOURWAYS_KEY_DISABLE快捷方式设置: EXTRA_SHORTCUTS_EXEC_MENUID时间与日期:MENU9141_TIME_AND_DA TE时间/日期设置:MENU9143_SETTIMEANDDA TE res_setting.csetting_date_time_list_of_iconshightlight函数: HighlightPhnsetSetDT20.手电筒的宏: FLASHLIGHT_TYPE21.出厂时间:custom_hw_default.cconst kal_uint8 DEFAULT_HARDWARE_YEAR = 8; //2008const kal_uint8 DEFAULT_HARDWARE_MON = 1;const kal_uint8 DEFAULT_HARDWARE_DAY = 1;22. 双卡双待:只有一个拨号键的时候,需要弹出选择拨号界面SENDKEY_MODE = SINGLE_KEY_SELECT_MENU #SENDKEY2_SUPPORT有两个拨号键的时候:SENDKEY_MODE = SENDKEY2_SUPPORT #SENDKEY2_SUPPORT23.智能拼图#define CFG_MMI_GAME_PUZZLE (__AUTO__)24. 相机设置的默认值:MMI_features_camera.h#define CAMERA_DEFAULT_SETTING_BANDINGCAMERA_SETTING_BANDING_60HZ25.开关机图片格式:#define CFG_MMI_RES_TYPE_POWER_ONOFF_SEL (__RES_TYPE_GIF__)26. 号码归属地存于T卡中#define GFG_MMI_INCOMINGCALL_DA TA_IN_TCARD (__AUTO__)获取手机号码归属地的函数: FetchMobileHomeArea27.music: 路径: MUSIC_FOLDER6225D上如果是中文的路径: CFG_MMI_FOLDER_SM_CHINESE28.滑动换墙纸#define CFG_MMI_WIPE_EFFECT (__ON__)29. 读短信的:mmi_msg_inbox_list_get_hint30. 进入短线列表:mmi_msg_entry_inbox_list6225.阅读短信: mmi_msg_entry_view_msg31. 常用短信:__MMI_MESSAGES_TEMPLA TE__短信的handle 一般这个函数注册: mmi_msg_set_msg_menu_highlight_handler (SmsMoMtGuiInterface.c)MSG_TEMPLA TE_LANG_ENGLISHCalTemplateBase32.改外文的大小: pluto_en_standardFamily (fontres.c)33.卡1和卡2通话记录合并:# define CFG_MMI_COMBIN_SIM1_AND_SIM2_ENABLE (__ON__)魔音通话:VOICETONE_PITCHSHIFT = TRUEg_imui_ui_param.imui_bottom = MMI_content_y + MMI_content_height - 1-100;handle_inline_full_screen_edit_complete7900修改imui.c这个文件34.关机时退出系统: QuitSystemOperation (shutdownapp.c)35.来电黑名单: CFG_MMI_CM_BLACK_LIST36. 如果没有触摸屏,请注意将手写也关闭掉,否则编译不过TOUCH_PANEL_SUPPORT = NONEHAND_WRITING = NONEHAND_WRITING_CHS_SUPPORT = FALSE37.打印出错信息MMISWChangeWarning38.开机搜索界面ShowCategory120Screen39. 23平台上的拨号大字体#define CFG_MMI_PHB_GENERIC_MULTI_SELECT (__OFF__)这个宏打开时,发短信从电话簿选择的时候,会有两个选项,无触摸屏时关掉CFG_FULL_DIAL_SCREEN_WITH_PICTURE40. 发短信时,从电话簿添加mmi_sms_recipient_add_from_contactsmmi_phb_mark_several_for_msg_pre_entryShowCategory199Screenwgui_inputs_sl_resize40. 背景播放挂起:mdi_audio_suspend_background_play挂起后,再继续播放:mdi_audio_resume_background_play41.信息报告界面:ShowCategory145Screen信息报告入口函数:mmi_msg_entry_deliver_report_ind显示界面的图片路径: \Images\PLUTO400X240\MainLCD\DualSIM\MESSAGE\CARD1\OUTBOX 字体颜色的theme: MMI_inputbox_normal_filler42.编模拟器的时候__MTK_TARGET__ 这个是不打开的,编译手机时打开43.EntryPhnseFactoryDefaultCalibrationScr45. 读短信:mmi_sms_entry_viewer收到新短信:mmi_msg_new_msg_ind信息报告:mmi_msg_entry_new_msg_indmmi_msg_nmgr_query_sms_notify获取信息报告的显示信息:mmi_msg_get_deliver_report_msg46.nvram_common_config.c中NVRAM_EF_PORT_SETTING_DEFAULT 中#if defined(__ONLY_ONE_UART__) || defined(__MMI_DUAL_SIM__)0, /* tst-ps uses uart_null(value is 99 (0x63)) */99, /* APP uses uart_port1 (value is 0) */#else0, /* tst-ps uses uart_port2(value is 1) */1, /* APP uses uart_port1 (value is 0) */#endif进入工程模式自动调好47. 触屏校准相关EntryPhnseFactoryDefaultCalibrationScr_internal48. 从文件管理进去看图片FileMgr.chighlight_fmgr_view_image49.修改写信息时,光标的颜色的主题inputbox_cursor_color_defaultTheme50.卡1收件箱MENUID:MENU_MTPNP_SMS_MASTER_INBOX卡2收件箱MENUID:MENU_MTPNP_SMS_SLA VE_INBOX51. 判断卡1还是卡2合法:bootupApp.c文件中卡1合法:mmi_bootup_is_sim_valid卡2合法: mmi_bootup_is_sim2_valid卡1卡2收件箱列表:mmi_msg_entry_divided_inbox_menu隐藏一个菜单:mmi_frm_hide_menu_item将以前隐藏的菜单显示出来:mmi_frm_unhide_menu_item相关文件:MTPNP_PFAL_MessageSetup.c模式设置: 卡 1 开: (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD1)卡2开: (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_CARD2)卡1卡2同时开: (MTPNP_AD_Get_Startup_Mode() == MTPNP_AD_NVRAM_DUALCARD)52.短信编辑界面:写短信息选择字的背景颜色:multitap_filler_defaultTheme53.来电归属地显示:宏: __MMI_INCOMINGCALL_SHOW__FetchMobileHomeArea54. 文件浏览相关:entry_fmgr_explorerexit_fmgr_explorer释放浏览时获取的内存: mmi_fmgr_free_thumb_image_cache55. 信号强度: simdetectiondef.h#define SIGNAL_STRENGTH_LEVEL1 6#define SIGNAL_STRENGTH_LEVEL2 9#define SIGNAL_STRENGTH_LEVEL3 12#define SIGNAL_STRENGTH_LEVEL4 15显示信号强度:NetWorkSignalLevelIndication56. 修改短信条数: #define CM_SMS_MAX_MSG_NUM 15057.电话簿列表-----选项(res_phonebook.c) MITEM101_PBOOK_VIEW_OPTIONS插入号码:EMS_ED_OPT_INS_PHB_NUMBERmmi_msg_highlight_insert_phb_number58 ,工程模式密码: #define SSC_ENGINEERING_MODE "*#638725#"59.保存并发送: SEND_OPT_SA VE_AND_SEND_MENUIDmmi_msg_highlight_send_and_save61. 菜单列表字的颜色:list_normal_text_color_defaultTheme二级菜单选中时的颜色: menu_item_160x22_filler_defaultThemelist_main_menu_normal_item_filler_defaultTheme62.多方发送:__MMI_MESSAGES_SEND_TO_MANY__mmi_msg_highlight_send_to_many发送: mmi_msg_highlight_send_onlymmi_msg_send_msg_to_only_entry写信息函数:mmi_msg_entry_write_msg群发:__MMI_MESSAGES_SEND_BY_GROUP__#define EMS_DEFAULT_DCS_A V AILABLE_LENGTH 160#define EMS_UCS2_DCS_A V AILABLE_LENGTH 7063. 0928 版:编辑短信,显示信息:wgui_EMS_redraw_remaining_characters_display64.发送名片:#define CFG_MMI_VCARD (__ON__)65. 默认的高亮选项:#define CFG_MMI_DEFAULT_MAIN_MENU_HIGHLIGHT_MESSAGE (__AUTO__)67.idle的界面,title不变化,相关函数:standard_animated_matrix_highlight_handler_type268.#define CFG_MMI_MESSAGE_LIST_HINT (__ON__)69. 文件路径: CFG_MMI_FOLDER_SM_CHINESE70. 6235 上F82要修改lcd背光时间在文件nvram_common_config.c 中背光时间对应的一项为:NVRAM_BYTE_BL_SETTING_HFTIME71.短信copy 宏: __MMI_MESSAGES_COPY__从手机copy到sim卡或从sim卡copy 到手机72.手机上存储短信分配的条数:nvram_common_defs.hNVRAM_EF_SMSAL_SMS_TOTAL73.sim卡2信息设置-- 存储位置存储位置:MENU_MTPNP_PREFEREDSTORAGE74.sim卡和手机存储短信的总条数: customer_ps_inc.h#define CM_SMS_MAX_MSG_NUM 35075. 6235平台,双IMEIDUAL_IMEI = TRUE76.短信设置------sim卡1信息设置-----------存储位置设置----------手机手机无法支持的原因:#define CM_SMS_MAX_MSG_NUM 350CM_SMS_MAX_MSG_NUM 为短信的总条数,短信总条数必须大于sim卡和手机分配的条数的和手机上存储短信的条数: nvram_common_defs.h#if defined(LOW_COST_SUPPORT)#define NVRAM_EF_SMSAL_SMS_TOTAL (10 * NVRAM_DUAL_RECORD) #else#define NVRAM_EF_SMSAL_SMS_TOTAL (200 *NVRAM_DUAL_RECORD)#endif /* LOW_COST_SUPPORT */77. 有两个拨号键时候,通常要定义DEVICE_KEY_SEND 和DEVICE_KEY_SEND2在文件keypad_def.c78.电话簿快速搜索CFG_MMI_PHB_QUICK_SEARCH79.收到新信息的入口函数:mmi_msg_new_msg_ind80.发送完信息,然后保存的函数mmi_msg_save_msg_after_send_req81.回复短信menuid : SMS_INBOX_OPT_REPLY_MENUID回复短信高亮函数: mmi_msg_highlight_replymmi_msg_reply_msg新增加的宏__SEND_AND_SA VE_SMS__ 这个宏打开,默认就保存所发出的短信发送并保存短信: mmi_msg_highlight_send_and_save发送并保存: mmi_msg_send_and_save_msg_req写短信:SmsMoMtGuiInterface.cHighlightWMessageHandlermmi_msg_entry_write_msg82. 6235平台,删除短信mmi_sms_delete_msg_rsp83.从电话簿中选中联系人,发送短信MENU_ID_PHB_OPTION_SEND_SMSmmi_phb_highlight_op_send_sms__MMI_PHB_SEND_SMS_FROM_PHB__84.矢量字体__MMI_SKY_FONT__85.拒接电话并发送短信__MMI_UCM_REJECT_BY_SMS__86.快捷EXTRA_SHORTCUTS_MENUIDhighlight_mainmenu_shortcuts_execute87.手机设置:MENU9102_INITIAL_SETUPMENU_IDLE_SCR_DISP88.wifiWIFI_WIZARD_SUPPORT = FALSE # TRUE or FALSE89. idle 的时候的快捷菜单__MMI_TOUCH_IDLESCREEN_SHORTCUTS__90.获取sms的存储类型mmi_frm_sms_get_storage91.字符串相关的问题将字符串转换成ucs2编码mmi_asc_to_ucs2(temple, " ");mmi_ucs2cpy(viewer_header_buff, GetString(STR_GLOBAL_NOT_SUPPORTED));mmi_ucs2cat(viewer_header_buff, buf2);92.无sim卡时,在idle界面也显示宫格-----------------宏CFG_MMI_NOSIM_HA VE_NORMAL_IDLE_MENU_INTERFACE93. 触摸屏TOUCH_PANEL_SUPPORT94.彩信:MMS_FEA TURESMMS_SUPPORTMESSAGES_MENU_MMS_MENUID彩信中创建菜单:mauisemm.cstatic int createMenuItems(int slideCount, int initiated, int slideIndex)95.wap:WAP_SUPPORT96.nvram_common_defs.h#define NVRAM_EF_SMSAL_SMS_TOTAL (200 * NVRAM_DUAL_RECORD)GLOBAL_DEBUG_MEM_SIZE97.0932 照片编辑器:#define CFG_MMI_PHOTOEDITOR (__AUTO__)98. 0932.幻灯片#define CFG_MMI_SLIDESHOW (__AUTO__)99.EntryPhnseFactoryDefaultCalibrationScr_internal100.IdleSetLRKey101.彩信:HighlightMMSHandler编辑彩信时:收信人-编辑-添加号码/添加电子邮件进入的函数为:mobile_suite_app.cwap_entry_fullscreen_editorShowCategory5Screen_ext要将这个编辑界面的背景调白一点在ShowCategory5Screen_ext 函数中dm_set_scr_bg_opacity((U8)(current_MMI_theme->bg_opacity_low-110));编辑彩信内容:wgui_categories_MMS.cShowCategory277Screen编辑彩信主题:wgui_inline_edit.chandle_inline_full_screen_edit进入函数:MCU\vendor\wap\obigo_Q03C\adaptation\modules\mma\source\mmsadp.cgoto_mms_screen102. short cut 图片路径:MainLCD\IdleScreen\Touch103. 有触摸屏时,idle界面左右软件中间的那个键的图片位置:__MMI_WGUI_CSK_ENABLE__#if (defined __MMI_TOUCH_SCREEN__) && (defined __MMI_WGUI_CSK_ENABLE__) ADD_APPLICA TION_IMAGE2(IMG_CSK_DIAL_ICON,CUST_IMG_PA TH"\\\\MainLC D\\\\Call\\\\Touch\\\\Call.bmp","icons used in csk to make call");#endif104. 写信息----发送---从电话簿添加(IMG_ID_PHB_TAB_GROUP_ITEM,CUST_IMG_PA TH"\\\\MainLCD\\\\Phonebook\\\\Phb_group_item.pbm","PHB tab group item") STR_CALLER_GROUP_4mmi_sms_entry_add_recipientmmi_phb_entry_generic_mark_several_and_quick_search_tab1105. status icon id :IMG_SI_MASTER_SIGNAL_CLOSED106. 自动测试中键盘测试:EntryFMKeypadTest106. 视频播放器:入口函数:MENU_ID_VDOPLY_APPmmi_vdoply_highlight_appmmi_vdoply_entry_player_screen_internal]107. 显示imei:mmi_ssc_get_imei_rsp108. 视频录像器:mmi_vdorec_entry_app_internal109. 视频播放器全屏播放时,不能全屏播放在mmi_vdoply_init_ui 函数中看创建播放层是否正确即创建这个层: g_vdoply_cntx.fullscr_play_layer_handle在mmi_vdoply_blt_screen 中看刷屏是否正确在mmi_vdoply_play_video 中看看是否需要旋转屏幕110 录音: CFG_MMI_SOUND_RECORDER背景播放挂起mdi_audio_suspend_background_play111. 定义wallpaper的类型:#define CFG_MMI_RES_TYPE_WALLPAPER_SEL (__RES_TYPE_JPG__)112. 定义清除键:#define CFG_MMI_WITH_C_KEY (__ON__)113. QQDSM_SUPPORT = TRUE#define CFG_MMI_DSM_QQ_APP (__ON__)#define CFG_QQ_APP_TCARD (__ON__)//MSN#define CFG_MMI_DSM_MSN_APP (__ON__)#define CFG_MSN_TCARD (__ON__)114. 拨号大字体#define CFG_MMI_240X400_DIAL_BIG_SCREEN (__ON__)图片包: \\\\MainLCD\\\\DialingScreen\\\\240X400Dialing115. 电话簿的总大小: PhoneBookTypes.hMAX_PB_ENTRIES116. 启动省电模式:#define CFG_MMI_PROFILE_RETRENCH (__ON__) ActivateRetrenchProfile SettingProf.c117. 调整menuitem的高度:CFG_UI_MENUITEM_HEIGHT118. 语言朗读INTERSOUND_MODULE_SUPPORT119. 照相机切换MENU_ID_CAMERA_SWITCH120. melody.#define GAIN_NOR_MED_VOL_MAX 144121. 0928平台全屏显示信号强度和电池电量宏#define CFG_MMI_STA TUSBAR_TOUCH (__ON__)122. cta的宏: __CTA_SUPPORT__123. BT_AUDIO_VIA_SCO你那个MTK版本的蓝牙手机中蓝牙这块软件未将MTK自带的蓝牙功能BT_AUDIO_VIA_SCO打开,所以来电或拨号就没有提示音的。