为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

详细设计说明书(通话记录)

2017-09-20 14页 doc 208KB 32阅读

用户头像

is_477730

暂无简介

举报
详细设计说明书(通话记录)[通话记录] 详细设计说明书 [MTK-M3项目组] 康佳通信科技开发中心软件所 2005年4月26日 目录 修改历史    3 1整体结构及功能描述:    4 1.1已拨电话:    4 1.2未接电话:    4 1.3已接电话:    5 1.4删除电话记录:    5 1.5通话时间:    5 1.6通话费用:    5 1.7短信计数器:    6 2关键数据结构说明    6 3 主要存储分配:    8 4各子模块实现及主要算法说明    9 4.1 初始化    9 4.2未接电话    10 4.3 已接...
详细设计说明书(通话记录)
[通话记录] 详细 [MTK-M3项目组] 康佳通信科技开发中心软件所 2005年4月26日 目录 修改历史    3 1整体结构及功能描述:    4 1.1已拨电话:    4 1.2未接电话:    4 1.3已接电话:    5 1.4删除电话记录:    5 1.5通话时间:    5 1.6通话费用:    5 1.7短信计数器:    6 2关键数据结构说明    6 3 主要存储分配:    8 4各子模块实现及主要算法说明    9 4.1 初始化    9 4.2未接电话    10 4.3 已接电话和已拨电话:    14 4.4删除通话话记录:    14 4.5通话时间:    15 4.6通话费用:    15 4.7短信计数器:    17 5内部调用的主要数说明:    18 6模块提供的外部接口函数说明    19 7主要信号说明    19 8相关文档文件    20 修改历史 时间 修改人 版本 修改内容 2005-4-26 余文美    1.0 创建初始版本 1整体结构及功能描述:     通话记录模块的设计和其他模块一样,从整体上来说,主要是MMI和栈之间通过2个队列MMIQueue和L4Queue来互发消息实现相互之间的通信。从MMI来看,该模块主要由通话记录,通话费用,通话时间,以及短信计数器几个部分组成,用下图表示为: 其个子模块的功能描述如下: 1.1已拨电话: 在NVRAM中最多可以保存10条最近的已拨电话的记录。当手机对外进行呼叫的同时,就会向NVRAM写入一条已拨电话的记录。当已拨电话记录已满的情况下(即已有10条已拨电话的通话记录),新加入的已拨电话记录将覆盖已存在的第一条已拨电话记录。当手机关机时,会将已拨电话的通话记录复制到SIM卡中,在手机开机后再从SIM卡上读取出来。每条记录只对应于一个电话号码,当用户拨出的电话号码在已拨电话记录中已经存在时,新的拨号时间将覆盖原来的拨号时间,但拨号的次数加1。 1.2未接电话:   在NVRAM中最多可以保存20条最近的未接电话的记录。当用户拒绝或者没有接来电时,就会向NVRAM写入一条未接电话的记录。当未接电话记录已满的情况下(即已有20条未接电话的通话记录),新的未接电话记录将覆盖已存在的第一条未接电话记录。每条记录只对应于一个电话号码,当来电的电话号码在未接电话记录中已经存在时,新的来电的时间将覆盖原来的来电时间,但未接的次数加1。 1.3已接电话:   在NVRAM中最多可以保存20条最近的已接电话的记录。当用户接听来电时,就会向NVRAM写入一条已接电话的记录。当已接电话记录已满的情况下(即已有20条已接电话的通话记录),新的已接电话记录将覆盖已存在的第一条已接电话记录。每条记录只对应于一个电话号码,当来电的电话号码在已接电话记录中已经存在时,新的来电的时间将覆盖原来的来电时间,但已接的次数加1。 1.4删除电话记录:           删除已接电话,未接电话,已拨电话中的任一电话记录。 1.5通话时间:       通话时间屏幕将显示以下通话时间: A. 上次通话时间:在弹出的提示内显示上次通话的时间; B. 总共打出电话的时间:在弹出的提示内显示总共打出的通话时间;(从上次Reset后算起) C. 总共接电话的时间:在弹出的提示内显示总共接电话的通话时间;(从上次Reset后算起) D. 清空所有的通话时间:将所有的通话时间清空。 1.6通话费用:       通话费用界面将显示以下通话费用: A. 上次通话费用:显示上次通话的通话费用; B. 总共通话费用:显示总共通话的通话费用;(从上次Reset后算起) C. 清空通话费用:将所有的通话费用清空; D. 最大通话费用:提示最多允许的通话费用; E. 价格及费率:将提示价格以及费率。 1.7短信计数器:       短信计数器屏幕将显示已发送和已接受的短信的条数。当光标选中其中任何一项时,就会弹出数目的提示。 2关键数据结构说明 TOT_SIZE_OF_DIALED_LIST        10      //已拨电话的记录最大数目 TOT_SIZE_OF_MISSED_LIST        20      //未接电话的记录最大数目 TOT_SIZE_OF_RECVD_LIST          20        //已接电话的记录最大数目 CS_NOTIFYDURATION                          //提示框显示的时间 //保存通话记录的信息 typedef struct {     U8    numType;          //电话号码的类型     U8    numLength;        //电话号码的长度     U8    number[(MAX_CC_ADDR_LEN+1)*ENCODING_LENGTH]; //号码字串     U8    nameLength;        //姓名长度     U8    nameDCS;         //名字的数据编码格式     S8 pbName[(MAX_PB_NAME_LENGTH+1)*ENCODING_LENGTH]; //姓名字串     MYTIME    startTime;        //通话开始的时间     U16 no_of_times;          //对同一电话号码未接/已接/已拨通话的次数 } LOG_CALL; typedef struct {   U8 curCallLogType;        //当前通话记录的类型   U8 currDialedCallIndex;    //当前已拨电话在已拨电话列表中的index   U8 currMissedCallIndex;  //当前未接电话在未接电话列表中的index   U8 currRecvdCallIndex;    //当前已接电话在已接电话列表中的index   U8 nDialedCalls;          //已拨电话记录的数目   U8 nMissedCalls;        //未接电话记录的数目   U8 nRecvdCalls;        //已接电话记录的数目   U8 nMissedCallBeforeView;  //未读未接电话的数目   U8 dialFromCallLog;        //用户从通话记录中拨打电话时通话记录的类型   BOOL isFirstTime;          //开机后是不是第一次阅读通话记录   BOOL isDeleteAll;          //是否要删除所有通话记录   BOOL isCallLogReady;      //PS是否准备好被阅读   BOOL saveMissedScrn;    //是否要保存未接电话的界面   LOG_CALL *dialedCalls;      //指向已拨电话记录的指针   LOG_CALL *missedCalls;      //指向未接电话记录的指针   LOG_CALL *recvdCalls;        //指向已接电话记录的指针   LOG_CALL callsLog[TOT_SIZE_OF_CALLS_LIST];  //保存通话记录的数组   U8 nSendSMSCount;          //已发送的短消息的数目   U8 nRecvSMSCount;          //已接收短消息的数目   U8 currCostIndex;            //当前高亮显示的通话费用在费用列表中的index   U16 currCostItem;            //当前高亮显示的通话菜单   U32 lastCallCost;              //上次通话费用   U32 allCallCost;              //所有通话费用   U32 maxCallCost;            //最大通话费用   U8 newMaxCostStr[10*ENCODING_LENGTH]; //用户编辑最大通话费用时输入的字符串   double ppu;                  //当前的通话费率   U8 PPUStr[20*ENCODING_LENGTH];  //当前通话费率字符串   U8 newPPUStr[20*ENCODING_LENGTH];  //用户编辑通话费率时的输入的字符串   U8 currencyStr[4*ENCODING_LENGTH];  //存储通话价格的数组   U8 newCurrencyStr[4*ENCODING_LENGTH]; //存储用户编辑通话价格时输入的字符串   MYTIME total_out_time;                      //总共拨出电话的时间   MYTIME total_in_time;                      //总共拨进电话的时间   MYTIME last_call_time;                        //上次通话时间 }call_history_context_struct; 3 主要存储分配:           NVRAM_CALL_TIME_LID              记录的个数:NVRAM_CALL_TIME_RECORD_TOTAL  3           分为           Last_call_time           Total_Sent_time           Total_received_time           记录的大小:NVRAM_CALL_TIME_RECORD_SIZE    8           typedef struct {           kal_uint8  call_time[NVRAM_CALL_TIME_RECORD_SIZE]; }nvram_call_time_struct;           NVRAM_SMSCOUNTERS_SENT           记录的个数:    1           记录的大小:    1                    NVRAM_ SMSCOUNTERS_RECD           记录的个数:    1           记录的大小:    1 4各子模块实现及主要算法说明 4.1 初始化       进入此模块主要分为两个步骤:首先是在系统启动时初始化,然后再从主菜单选择进入。系统初始化阶段,调用函数InitializeAll,在这个函数中对通话记录模块进行了初始化,即调用InitCallLogs函数,在该函数中首先注册协议栈消息的相应函数SetProtocolEventHandler( ReadyLogIndication,                        PRT_MMI_PHB_LAST_NUMBER_READY_IND );当系统检测到通话记录模块已经准备就绪后,PS/L4便会向MMI Queue写入PRT_MMI_PHB_LAST_NUMBER_READY_IND的消息,当MMI task读取到该消息后,就调用函数ReadyLogIndication来完成一系列的检测和初始化工作。这一阶段完成了大部分的工作。用图表说明如下:   菜单的入口在CallHistoryMain.c中,里面的InitCallHistory包含了其他几个模块的初始化函数,它也是在系统启动时的InitializeAll中执行的。在函数EntryScrCallHistoryMainMenu中,显示菜单,并且相应的菜单响应都已经注册好了。 4.2未接电话 下面主要介绍查询未接电话记录的流程,主要的流程用流程图可以描述如下: 现详细描述实现此功能的具体流程: 在初始化时函数InitCallLogs注册未接电话的菜单高亮显示事件。HighlightCHISTMissedCalls();当高亮显示此菜单时运行此函数。此函数里注册了一些响应键盘消息的函数,在这里我们只关注按左软键进入的函数 ReqReadDailNumByKey()。该函数主要是根据first_time和callLogready来判断是否能进入查询流程,如果能进入查询流程,则进入函数ReqReadMissedNum()。 ReqReadMissedNum ()函数首先建立一个GET_LAST_NUMBER_REQ类型的指针,并给它分配相应大小的内存,然后把PHB_LNM赋给该指针结构中的type,表示查询的是未接电话。把建好的指针赋给消息的数据指针。再对消息结构中的其他成员赋相应的值后,消息就建好了。建立好消息后向NS/L4 Queue发送查询消息PRT_MMI_PHB_GET_LAST_NUMBER_REQ,并且注册得到查询结果后的处理函数RspReadMissedNum()。 当CALL_LOG_RESULT_OK时,RspReadMissedNum()函数将未接电话的查询结果一个个读出来,并通过函数CHISTExtractPSCallLog()将查询的结构转换成我们自定义的电话记录的格式。当查询完毕后用函数EntryCHISTViewMissedCallList将未接电话全部显示出来。 在函数EntryCHISTViewMissedCallList中,显示所有未接电话的记录,并注册成菜单和菜单高亮显示时的回调函数CHISTGetCurrMissedCallIndex,把当前所选中的菜单的序列号保存在currMissedCallIndex中。注册了左键菜单函数EntryCHISTViewMissedCall,该函数显示所选未接电话记录的详细信息,包括时间,姓名,电话号码,次数等。在该函数中注册了左键菜单函数EntryCHISTMissedListOptions,如果进入该函数,可以对电话号码进行编辑,删除,保存,回拨等功能。这个函数没有直接去注册各菜单行为的入口函数。而是用此函数RegisterHighlightHandler( ExecuteCurrHiliteHandler );,这个函数一次性执行了所有菜单的注册高亮显示的入口函数。这些在InitCallLogs中已经注册了的。 对未接电话的电话号码进行的操作的菜单的高亮显示函数已经在InitCallLogs中注册过了,下面对这些菜单项的实现做一个介绍: 1. 删除功能: 高亮显示删除时,会调用HighlightCHISTDeleteDialedNum函数,在该函数中注册了左键的响应函数EntryCHISTDeleteDialedCallConfirm,该函数为跳出一个确认删除的提示框,同时注册左键入口函数CHISTDeleteDialedNum,在该函数中调用了函数ReqDeleteCallLog,在该函数中又建立了DEL_LAST_NUMBER_REQ型的结构指针,并建立了消息PRT_MMI_PHB_DEL_LAST_NUMBER_RSP,发送给L4 queue,消息的数据指针指向的数据类型是DEL_LAST_NUMBER_REQ型,这个消息包含了号码的类型PHB_LNM和要删除的index。并注册了返回消息时的处理函数RspDeleteMissedNum,在该函数中,如果result.flag的值为CALL_LOG_RESULT_OK(0)时则表示dialedCalls中序号为该index的记录删除成功。 2. 保存功能: 高亮显示保存时,调用函数HighlightCHISTSaveDialedNum,该函数的注册左键的响应函数CHISTSaveDialedNum,在该函数中调用SaveNumberFromIdleScrn将号码显示在屏幕上后,调用mmi_phb_op_add_pre_entry对号码进行保存。当电话簿还有空间存储电话号码时,调用函数mmi_phb_entry_op_add_choose_storage选择存储位置,并调用mmi_phb_entry_op_edit_entry对该记录进行编辑后保存到电话簿中。这关系到电话簿模块的内容,在这里不做详述。值得关注的是,在保存了电话号码到电话簿后,显示通话记录列表名称的记录名也要相应的进行改变。可以用下图表示: 3. 回拨功能: 高亮显示回拨时,调用函数HighlightCHISTCallDialedNum,在该函数中注册左键的响应函数CHISTCallDialedNum,在该函数中通过判断dialedCalls和currDialedCallIndex找到当前需要处理的记录,并对应其名字或号码对该记录进行拨打。 4. 编辑功能: 高亮显示编辑时,调用函数HighlightCHISTEditRecvdNum,在该函数中注册左键的响应函数CHISTEditRecvdNum,在该函数中通过调用IdleScreenDigitHandler将号码显示在屏幕上对其进行编辑。 4.3 已接电话和已拨电话:       已接电话和已拨电话记录的查询的流程以及高亮显示option菜单的流程及算法都和未接电话类似,这里不再赘述。已接,已接电话记录的查询主要的流程如下图所示:       4.4删除通话话记录:       在初始化时InitAllApplications调用函数InitCallHistory,在该函数中InitCallsReset注册了菜单高亮度显示函数。当高亮度显示菜单删除通话记录时调用HighlightCHISTResetCallLog,在该函数中注册了左键的响应函数EntryCHISTResetCallLog,该函数显示要删除的通话记录的菜单项,这个函数没有直接去注册各菜单行为的入口函数。而是用此函数RegisterHighlightHandler( ExecuteCurrHiliteHandler );,这个函数一次性执行了所有菜单的注册高亮显示的入口函数。这些在InitCallsReset中已经注册了的。         高亮显示的这些菜单,是实现对未接电话,已接电话,已拨电话记录的删除功能。下面对删除已拨电话的功能做一下介绍,删除已接电话,未接电话与之类似,不再赘述。         当高亮显示已拨电话时,调用函数HighlightCHISTDeleteAllDialed,该函数中注册了左键的响应函数EntryCHISTDeleteAllDialedConfirm,该函数为弹出一个删除提示框,     并注册左键响应函数DeleteAllDialedCalls,在该函数中建立了DEL_LAST_NUMBER_REQ型的结构指针,并建立消息PRT_MMI_PHB_DEL_LAST_NUMBER_REQ,该消息的数据类型是DEL_LAST_NUMBER_REQ型的,号码类型是PHB_LND,建立好消息后,向L4 Queue发送消息,并注册了返回消息时的处理函数RspDeleteAllDialedNum,当result.flag为CALL_LOG_RESULT_OK(0)时,删除成功并给出删除成功的提示。 4.5通话时间:     在初始化时InitAllApplications调用函数时调用函数InitCallTimes,在该函数中注册了菜单高亮显示的函数。当高亮显示通话时间菜单时,调用函数HighlightCHISTCallTime,在该函数中注册了左键响应函数EntryCHISTCallTime,该函数从NVRAM中读出上次通话,已拨电话总计,已接电话总计的时间,并通过ShowCategory52Screen函数,将通话时间显示出来。这个函数没有直接去注册各菜单行为的入口函数。而是用此函数RegisterHighlightHandler( ExecuteCurrHiliteHandler );,这个函数一次性执行了所有菜单的注册高亮显示的入口函数。这些在InitCallTimes中已经注册了的。       当高亮显示所有计时归零菜单时,调用函数HighlightCHISTResetAllTime,在该函数中注册了左键的响应函数EntryCHISTResetAllTimeConfirm,该函数为一个提示是否归零的提示框,在该函数中注册了左键的响应函数CHISTResetAllTime,该函数将last_call_time,total_out_time,total_in_time的值都归零,并将值写入NVRAM,并给出归零成功的提示。 4.6通话费用:       在初始化时InitAllApplications调用函数InitCallCost,该函数中注册了菜单高亮显示的函数,当高亮显示通话费用菜单时,调用函数HighlightCHISTCallCost,在该函数中注册了左键响应函数CHISTGetCallCost,在该函数中调用函数ReqGetAllCallCost,ReqGetLastCallCost,ReqGetPriceAndUnit,ReqGetMaxCallCost等函数得到总通话费用,上次通话费用,价格及费率,费用限制的值。下面只对统计总通话费用的实现做一个介绍,其他的与之类似,就不再赘述。         当查询总通话费用时,调用函数ReqGetAllCallCost,该函数向L4 queue发送PRT_MMI_CC_GET_ACM_REQ的消息,并注册消息返回时的处理函数RspGetAllCallCost,该函数建立一个MSG_MMI_CC_GET_ACM_RSP_STRUCT型的结构指针,将L4返回的结果的acm的值赋给allCallCost。就得到总共通话的费用。         当高亮显示通话限制或通话费用归零,价格及费率菜单时,按左键会提示输入PIN2码。现举通话费用归零菜单为例,当按左键时就会调用函数SECSETGetPIN2StatusReq,在这个函数中建立好ID为PRT_MMI_SMU_CHECK_PIN_STATUS_REQ的消息,并向L4 queue发送,同时设置好消息返回时的函数SECSETGetPIN2StatusRsp。如果PIN2码没有被锁住,则调用函数EntrySECSETPIN2提示输入PIN2码,并调用函数VerifyPin2对输入的PIN2码进行验证,如果验证成功,那么将通话的费用归0。如果不成功,则给出错误提示,并重新要求输入。如果PIN2被锁住,那么,则提示输入PUK2码,如果成功,则提示输入PIN2码,如果成功,那么将通话费用归0。PIN2码验证的流程可以用下图表示: 4.7短信计数器:       在初始化时InitCallHistory时调用函数InitSMSCounter,在该函数中注册高亮显示菜单时的函数。当高亮显示短信计数器时,调用函数HighlightCHISTSMSCount,该函数注册了左键的响应函数EntryCHISTSMSCount,该函数显示已发送和已接收短信数目的菜单,这个函数没有直接去注册各菜单行为的入口函数。而是用此函数RegisterHighlightHandler( ExecuteCurrHiliteHandler );,这个函数一次性执行了所有菜单的注册高亮显示的入口函数。这些在InitSMSCounter中已经注册了的。     在InitSMSCounter函数中还调用了函数InitNvramSMSCounters,该函数从NVRAM中将已发送和已接收的短信的数目读出来,并赋给nSendSMSCount和nRecvSMSCount。当高亮显示已发送和已接收菜单时,通过函数ShowCategory52Screen直接显示出来。当短信的数目不为空时,按左键会出现确定删除的提示框,由于原理在上面已经描述过了,这里便不再赘述。 5内部调用的主要函数说明: void ReqReadMissedNum(void)    //向Ps发出查询未接电话记录的请求 void RspReadMissedNum(void *info) //处理得到查询未接电话记录结果的函数(此处的info                                 应该是ps返回的未接电话记录的信息) void ReqReadDialedNum(void)      //向Ps发出查询已拨电话记录的请求 void RspReadDialedNum(void *info) //处理得到查询已拨电话记录结果的函数(此处的info                                 应该是ps返回的已拨电话记录的信息) void ReqReadRecvdNum(void)    //向Ps发出查询已接电话记录的请求 void RspReadRecvdNum(void *info) //处理得到查询已拨电话记录结果的函数(此处的info                                 应该是ps返回的已拨电话记录的信息) void CHISTDeleteDialedNum( void )  //删除当前已拨电话记录中的号码的信息 void CHISTSaveDialedNum( void )  //将当前已拨电话记录中的号码保存到电话簿 void CHISTCallDialedNum( void )    //对当前已拨电话记录中的号码进行呼叫 void CHISTEditDialedNum( void )    //对当前已拨电话记录中的号码进行编辑 void CHISTCallMissedNum( void )  //删除当前未接电话记录中的号码的信息 void CHISTSaveRecvdNum( void )  //将当前未接电话记录中的号码保存到电话簿 void CHISTCallMissedNum( void )  //对当前未接电话记录中的号码进行呼叫 void CHISTEditMissedNum( void )  //对当前未拨电话记录中的号码进行编辑 void CHISTDeleteRecvdNum( void )  //删除当前已接电话记录中的号码的信息 void CHISTSaveRecvdNum( void )  //将当前已接电话记录中的号码保存到电话簿 void CHISTCallRecvdNum( void )    //对当前已接电话记录中的号码进行呼叫 void CHISTEditRecvdNum( void )    //对当前已接电话记录中的号码进行编辑 6模块提供的外部接口函数说明 U8 CHISTGetMissedCallCountBeforeView(void ) //得到在浏览未接电话记录前未接电话的数目 void CHISTLogMissedCall( CALL_INFO* call )  //向NVRAM录入未接电话的信息 void CHISTLogRecvdCall( CALL_INFO* call )  //向NVRAM录入已接电话的信息 void CHISTLogDialedCall( CALL_INFO* call )  //向NVRAM录入已接电话的信息 void CHISTLogDialedCallDuration( CALL_INFO* call ) //向NVRAM录入总共拨出电话的通话时间和上次通话时间 void InitNvramSMSCounters( void )  //从NVRAM中读出已发送和已接受短信的数目 void CHISTIncSentSMS( void )        //已发送短信的数目加一并写入NVRAM void CHISTIncRecvdSMS( void )      //已接收短信的数目加一并写入NVRAM void InitCallHistory( void )            //初始化通话记录模块 void InitCallLogs( void )              //初始化通话记录的协议事件处理 void CHISTResetCallLogIndex (void)    //初始化当前高亮显示的通话记录的index的值 void CHISTGetCallLogName(LOG_CALL *item) //如果从通话记录中选择一个电话进行拨打,那么得到该电话记录的名字 U8 CHISTGetMissedCallCountBeforeView(void )  //得到未读的未接电话的数目 void CHISTLogDialedCallDuration( CALL_INFO* call ) //录入上次打出电话的通话时间,总的打出电话的通话时间也随之增加 void CHISTIncSentSMS( void )                //已发送的短消息的数目加1 void CHISTIncRecvdSMS( void )              //已接收的短消息的数目加1 7主要信号说明 PRT_MMI_PHB_LAST_NUMBER_READY_IND  //PS返回的通话记录准备好的消息 PRT_MMI_PHB_GET_LAST_NUMBER_RSP    //PS返回的得到已拨电话记录信息的消息 PRT_MMI_PHB_SET_LAST_NUMBER_RSP  //PS返回的写入通话记录信息的消息 PRT_MMI_CC_RESET_ACM_RES          //PS返回的清空通话费用操作成功与否的消息 PRT_MMI_CC_GET_CCM_RES          //PS返回的得到上次通话费用的消息  PRT_MMI_CC_GET_ACM_RES          //PS返回的得到总通话费用的消息 PRT_MMI_CC_GET_MAX_ACM_RES  //PS返回的得到最大通话费用的消息 PRT_MMI_CC_SET_MAX_ACM_RSP  //PS返回的设置最大通话费用成功与否的消息 PRT_MMI_CALL_COST_PRICEUNIT_GET_RSP //PS返回的得到价格和通话费率的消息 PRT_MMI_CALL_COST_PRICEUNIT_SET_RSP //PS返回的设置价格和通话费率成功与否的消息 8相关文档文件   Calllog.c   Callcost.c   Calltime.c   Callsmscounter.c   MMI_DD_CALLHISTORY.PDF   DESIGN_CALLHISTORY.PDF
/
本文档为【详细设计说明书(通话记录)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索