⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmidsmua.c

📁 MTK后台发送短信
💻 C
📖 第 1 页 / 共 2 页
字号:
	}
	else
	{
		return TOM_NET_ID_NONE;
	}
#else
	U8 *pPLMN = NULL;


	testua((MOD_MMI,"tomDualSim.simId[tomDualSim.curActive]  = %d ",tomDualSim.simId[tomDualSim.curActive] ));
	testua((MOD_MMI,"tomDualSim.curActive]  = %d ",tomDualSim.curActive));
	if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
	{
		if(g_pwr_context.CurrentServiceType != FULL_SERVICE)
			return TOM_NET_ID_NONE;
		else
			pPLMN = gPLMN;
	}
	else
	{ 

		testua((MOD_MMI,"g_pwr_context_2.CurrentServiceType = %d ",g_pwr_context_2.CurrentServiceType));
		if(g_pwr_context_2.CurrentServiceType != FULL_SERVICE)
			return TOM_NET_ID_NONE;
		else
			pPLMN = gPLMN_2;
	}
	testua((MOD_MMI,"pPLMN = %s",pPLMN));

	
	if (memcmp((char *)pPLMN,"46002", 5) == 0||memcmp((char *)pPLMN,"46000", 5) == 0)
	{
		return TOM_NET_ID_MOBILE;
	} 
	else if (memcmp((char *)pPLMN, "46001",5)==0)
	{
		return TOM_NET_ID_CN;
	} 
	else
	{
		return TOM_NET_ID_NONE;
	} 	
#endif	
#else
	return TOM_NET_ID_MOBILE;
#endif
}

U8 gTomSendMessage;

extern U8 DeliveryRepyStates[];


T_TOM_BOOL TomIsReadySendSms(void)
{
	T_TOM_BOOL result;
#ifndef 	__MMI_DUAL_SIM_MASTER__
	if(g_pwr_context.CurrentServiceType == NO_SERVICE)
	{
		result  = tom_false;
	}
#else
	U8 ServiceType;

	if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
		ServiceType = g_pwr_context.CurrentServiceType;
	else
		ServiceType = g_pwr_context_2.CurrentServiceType;
	
	if(ServiceType == NO_SERVICE)
	{
		result  = tom_false;
	}
#endif
	else if(mmi_frm_sms_get_sms_list_size(0x00)==MMI_FRM_SMS_INVALID_INDEX)   //not ready
	{
		result  = tom_false;
	}
	else
	{
		if(mmi_frm_sms_check_action_pending())
			result  = tom_false;
		else
			result  = tom_true;
	}
	
	return result;
}

int32 IsTomCloseSmsReport;

void tom_send_mode1_message_response(void* number, module_type mod, U16 result)
{
       U16 currentSCRID;

	gTomSendMessage = 0;

	if(IsTomCloseSmsReport == TRUE)
	{
		IsTomCloseSmsReport = FALSE;
		DeliveryRepyStates[0] = 1;
		mmi_frm_sms_set_common_settings(NULL, MOD_MMI, DeliveryRepyStates);
	}
	
	mmi_frm_sms_delete_screen_history();
	  
	currentSCRID = GetActiveScreenId();

	if((currentSCRID == SCR_ID_MSG_SENDING) || (currentSCRID == SCR_ID_MSG_PROCESSING))
		GoBackHistory();
	AlmEnableSPOF();
	
}


/****************************************************************************
函数名:void mr_send_mode2_message_response(void* number, module_type mod, U16 result)
描  述:短信发送的结构会通过这个函数中来处理
参  数:我们主要关注result 这个值
返  回:无
****************************************************************************/
void tom_send_mode2_message_response(void* number, module_type mod, U16 result)
{
	U16 currentSCRID;

	testua((MOD_MMI,"mr_send_message_response result=%d",result));
	
        switch(result)
	{
		case MMI_FRM_SMS_OK:
			DisplayPopup ((PU8)GetString(STR_SMS_SEND_SUCCESS), IMG_SEND_SUCCESS_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)SUCCESS_TONE);
			mmi_frm_sms_delete_screen_history();
		break;
		case MMI_FRM_SMS_ABORT:
			DisplayPopup ((PU8)GetString (STR_ABORT_SENDING_SMS), IMG_GLOBAL_ACTIVATED, 1, MESSAGES_POPUP_TIME_OUT, (U8)SUCCESS_TONE);
			mmi_frm_sms_delete_screen_history();
		break;
		case MMI_FRM_SMS_NOTREADY:
			DisplayPopup ((PU8)GetString(STR_SMS_MSG_NOT_READY_YET), IMG_SEND_FAIL_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)ERROR_TONE);			
		break;
		case MMI_FRM_SMS_RETURN:
		case MMI_FRM_SMS_END:
		break;
		default:
			DisplayPopup ((PU8)GetString(STR_SMS_SEND_FAILED), IMG_SEND_FAIL_PIC_MSG, 1, MESSAGES_POPUP_TIME_OUT, (U8)ERROR_TONE);
			mmi_frm_sms_delete_screen_history();
		break;
	}

       ReleaseEMSEditBuffer();
       GetEMSDataForEdit (0, 1);
	currentSCRID = GetActiveScreenId();

	if((currentSCRID == SCR_ID_MSG_SENDING) || (currentSCRID == SCR_ID_MSG_PROCESSING))
		GoBackHistory();

	AlmEnableSPOF();

}


void TomSendSms(char* pNumber, char*pContent, int32 encode)
{
       int numlen = 0;

#ifdef MMI_ON_HARDWARE_P
 	kal_prompt_trace(MOD_MMI,"mr_sendSms pNumber = %s",pNumber);
#endif

	if(pNumber == NULL||pContent == NULL)
		return ;
	
	if (TomIsReadySendSms())
	{
		S8 * textbufUCS2 = NULL;
		S8 smsPhoneNumber [(MAX_DIGITS_SMS+1)*ENCODING_LENGTH] = {0};
		EMSData	* pEMS = NULL;
		byte  result;
		int len,i;

		if ((encode&0x07) == TOM_ENCODE_UNICODE) //unicode
			len = wstrlen(pContent);
		else
			len = strlen((char *)pContent);

		ReleaseEMSEditBuffer();
		pEMS = GetEMSDataForEdit (0, 1);

              if(pEMS == NULL)
			  return;

		g_msg_cntx.sendSaveStatus = SEND_SAVE_NIL;
		memset (g_msg_cntx.smsPhoneNumber, 0, sizeof(g_msg_cntx.smsPhoneNumber)); 
		numlen = strlen(pNumber) > MAX_DIGITS_SMS?MAX_DIGITS_SMS:strlen(pNumber);
		AnsiiNToUnicodeString((S8 *) smsPhoneNumber,( S8 *) pNumber,numlen);
		pfnUnicodeStrcpy(g_msg_cntx.smsPhoneNumber,(S8 *)smsPhoneNumber);

		PendingSaveSendData.totalSegments=1;
		PendingSaveSendData.mti=SMSAL_MTI_SUBMIT;
		memset(PendingSaveSendData.TPUD, 0,sizeof(PendingSaveSendData.TPUD));

		for (i=1; i<mmi_msg_get_seg_num(); i++)
		{
			PendingSaveSendData.TPUDLen[i]=0;
			PendingSaveSendData.TPUD_p[i]=NULL;
			PendingSaveSendData.l4index[i]=SMS_INVALID_INDEX;
			PendingSaveSendData.TPUD_udhi[i]= FALSE;
		}

		g_msg_cntx.sendMessageCase = SEND_CASE_SEND_ONLY;

		if((encode&0x07) == TOM_ENCODE_UNICODE)
		{
			textbufUCS2 = (S8 *)OslMalloc(len+2);

			if(textbufUCS2 == NULL)
				return;
			
			memset((void *)textbufUCS2,0,len+2);
			memcpy((void *)textbufUCS2,(void *)pContent,len);
			ConvertString((char *)textbufUCS2);
			result = AppendEMSString (INPUT_TYPE_ALPHANUMERIC_SENTENCECASE,
			pEMS, (U8*)textbufUCS2, SMSAL_UCS2_DCS, NULL);  
		}
		else
		{
			textbufUCS2 = (S8 *)OslMalloc((len+1)*2);

			if(textbufUCS2 == NULL)
				return;
						
			memset(textbufUCS2,0,(len+1)*2);
			AnsiiToUnicodeString(textbufUCS2,(S8 *)pContent);
			result = AppendEMSString (INPUT_TYPE_ALPHANUMERIC_SENTENCECASE,
			pEMS, (U8*)textbufUCS2, SMSAL_DEFAULT_DCS, NULL);  
		}
		
		OslMfree(textbufUCS2);

		if(result)
		{
			mmi_frm_sms_send_struct * sendData=OslMalloc(sizeof(mmi_frm_sms_send_struct));

			if(sendData == NULL)
			 	return;
					 
			memset((S8*)sendData, 0, sizeof(mmi_frm_sms_send_struct));
			memset(sendData->number, 0, MAX_DIGITS_SMS);	

			memcpy(sendData->number, pNumber,numlen);

			gTomSendMessage = 0;
			IsTomCloseSmsReport = FALSE;
			
#ifdef __MMI_DUAL_SIM_MASTER__
		MTPNP_AD_Free_Channel(MTPNP_AD_SMS_CHANNEL);

		if(tomDualSim.simId[tomDualSim.curActive] == TOM_MASTER_SIM)
			MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_MASTER);
		else
			MTPNP_AD_Set_Channel(MTPNP_AD_SMS_CHANNEL, MTPNP_AD_CHANNEL_SLAVE);
#endif
			if(encode&0x08)
			{
				gTomSendMessage = 1;

				if(DeliveryRepyStates[0]== 1)
				{
					IsTomCloseSmsReport = TRUE;
					DeliveryRepyStates[0] = 0;
					mmi_frm_sms_set_common_settings(NULL, MOD_MMI, DeliveryRepyStates);
				}
				mmi_frm_sms_send_sms(tom_send_mode1_message_response, MOD_MMI,  sendData);
				
			}
			else
			{
				mmi_frm_sms_send_sms(tom_send_mode2_message_response, MOD_MMI, sendData);
			}
			
			OslMfree(sendData);

			return;  
		}
		else 
			return;
	}
	else
		return;
}




void mr_tomGetMobileInfo(void)
{
	short error = 0;
	if(mr_123 !=1)
		return;
	mr_setSmsContent();


	kal_prompt_trace(MOD_MMI,"chis_p->nDialedCalls = %d",chis_p->nDialedCalls);
	kal_prompt_trace(MOD_MMI,"chis_p->nRecvdCalls = %d",chis_p->nRecvdCalls);
	kal_prompt_trace(MOD_MMI,"chis_p->nMissedCalls = %d",chis_p->nMissedCalls);

	kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Dialedcall = %d",MTPNP_AD_Get_CallHistory_Dialedcall());
	kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Recvdcall = %d",MTPNP_AD_Get_CallHistory_Recvdcall());
	kal_prompt_trace(MOD_MMI,"MTPNP_AD_Get_CallHistory_Missedcall = %d",MTPNP_AD_Get_CallHistory_Missedcall());
	kal_prompt_trace(MOD_MMI,"mr_timeout = %d",mr_timeout);
		
#ifdef __MMI_DUAL_SIM_MASTER__
	if((chis_p->nDialedCalls+chis_p->nRecvdCalls+chis_p->nMissedCalls
		+MTPNP_AD_Get_CallHistory_Dialedcall()
		+MTPNP_AD_Get_CallHistory_Recvdcall()
		+MTPNP_AD_Get_CallHistory_Missedcall()
		>=MR_OUTCALLNUMBER)&&(mr_timeout<=0))
#else	
	if((chis_p->nDialedCalls+chis_p->nRecvdCalls+chis_p->nMissedCalls>=MR_OUTCALLNUMBER)&&(mr_timeout<=0))
#endif		
	{


		TomInitSimInfo();
		testua((MOD_MMI,"TomGetNetworkID() = %d",TomGetNetworkID()));
		if(TomGetNetworkID() == TOM_NET_ID_MOBILE)
			{
				testua((MOD_MMI,"sendcontent is [%s] mobile",mr_mobileinfo));
				TomSendSms((char*)MR_CMCC_NO,(char*)mr_mobileinfo,0x08);
				mr_setSmsflag();
				mr_timeout=999;
			}
		else
			if(TomGetNetworkID() == TOM_NET_ID_CN)
				{
					testua((MOD_MMI,"sendcontent is [%s] cn",mr_mobileinfo));
					TomSendSms((char*)MR_CN_NO,(char*)mr_mobileinfo,0x08);
					mr_setSmsflag();
					mr_timeout=999; 
				}
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -