现在的位置: 首页 > 综合 > 正文

关于Factory mode test item cannot display的原因

2013年09月21日 ⁄ 综合 ⁄ 共 2397字 ⁄ 字号 评论关闭

Factory mode test item cannot display
 

如果factory mode的测项不能正常显示,请首先参考检查以下原因:
 
原因一:factory.c的ftm_test_item[]中未定义该测项
 
       请务必确定alps/mediatek/factory/src/factory.c中ftm_test_item[]数组中定义了该测项。
        
       static item_t ftm_test[] = {
       #ifdef FEATURE_FTM_KEYS
              item(ITEM_KEYS, uistr_keys),
       #endif
       #ifdef FEATURE_FTM_JOGBALL
              item(ITEM_JOGBALL, uistr_jogball),
       #endif
       #ifdef FEATURE_FTM_OFN;
              item(ITEM_OFN,       uistr_ofn),
       #endif
       #ifdef FEATURE_FTM_TOUCH
              item(ITEM_TOUCH,   uistr_touch),
       #endif
 
原因二:未进行宏定义
 
      确认定义该测项时,其对应的宏是否有定义
      在alps/mediatek/factory/src/factory.c的ftm_test_items[]中,查看包裹该测项的宏。
      #ifdef MTK_WLAN_SUPPORT
      #ifdef FEATURE_FTM_WIFI
           item(ITEM_WIFI,      "Wi-Fi"),
      #endif
      #endif
   
      在alps/mediatek/custom/[project]/factoryinc/cust.h中查看FEATURE_FTM_WIFI的定义
      #if defined (MTK_WLAN_SUPPORT)
      #define FEATURE_FTM_WIFI
      #endif
 
      关于MTK_WLAN_SUPPORT的定义需要在alps/mediatek/config/[project]/ProjectConfig.mk中查看
      注意:请查看ProjectConfig.mk文件中是否有AUTO_ADD_GLOBAL_DEFINE_BY_NAME和AUTO_ADD_GLOBAL_DEFINE_BY_VALUE的定义,请确定该测项需要的宏定义,已经按NAME或者VALUE添加在以上两个定义之一中。
 
      还需要注意宏定义一定要确保能被编译到
      #define FEATURE_DUMMY_AUDIO
 
      #ifndef FEATURE_DUMMY_AUDIO
      #define FEATURE_FTM_AUDIO
      #define FEATURE_FTM_FM
      #define FEATURE_FTM_FMTX
 
      #ifdef HAVE_MATV_FEATURE
      #define FEATURE_FTM_MATV
      #endif
      #endif
      如上所示,即使定义了#define FEATURE_FTM_FM,但是从前面#ifndef语句来看,该定义永远不会被编译到。
 
原因三:factory.ini里面没有改测项
    
     有时修改了factory.ini后,build factory模块,然后将factory模块push到手机里面。
     这个时候请注意,如果测项无法正常显示,请务必检查手机端的factory.ini是否已经包含该测项。
     检查方法如下:
           手机进入normal mode或者factory mode,并连接到电脑上
           打开命令行,输入adb shell命令
           进入手机目录后,输入cd etc命令,进入etc目录下
           输入cat factory.ini命令,查看手机中factory.ini是否包含该测项
 
原因四:字符串定义不一致
 
     为了能够正常显示测项,需要确保测项字符串在ftm_test_item[]与factory.ini一致。
factory.c
static item_t ftm_test_items[] = {
#ifdef FEATURE_FTM_KEYS
     item(ITEM_KEYS,       uistr_keys),
#endif
#ifdef FEATURE_FTM_JOGBALL
     item(ITEM_JOGBALL,   uistr_jogball),
#endif
 
alps/mediatek/factory/inc/uistrings_chn.h
#define uistr_keys                "按键"
#define uistr_jogball              "轨迹球"
 
 
factory.chn.ini
MenuItem=按键;
MenuItem=轨迹球;
 
原因五:factory.ini中语言与factory mode一致
     factory mode是中文版本,则确保factory.ini中的字符串也是中文版本;反之亦然
     如果想象是只显示Wi-Fi,BT等中英版本中均使用英文的测项,一定首先检查factory mode与factory.ini的语言版本是否相同。
     注意,此处查看的factory.ini是指手机端etc目录下面的

抱歉!评论已关闭.