关于Factory mode test item cannot display的原因
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目录下面的
补充:移动开发 , Android ,