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

📄 jwa_sms.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifdef J2ME_SUPPORT_BACKGROUND
    /* SMS service is not available during bg running state */
    if (jvm_get_state() == JVM_BG_RUNNING_STATE)
    {
        sprintf(_kvmLogStr,"jwa_sms_send_text_message: BG running state \n");
    	Kprintf();
    
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

    p = NEW_LOCAL_PTR(mmiapi_sms_send_req_struct);

    isUcs2Char = mmi_frm_sms_check_UCS2((U16*) pBuffer, (U16) buflength);

    buflength <<= 1;    /* for ucs2 length */

    if (isUcs2Char)
    {
        p->dcs = SMSAL_UCS2_DCS;
    }
    else
    {
        p->dcs = SMSAL_DEFAULT_DCS;
    }

    p->blocking_data = NULL;

    p->port_number = (int)portNumber;

#ifdef __MMI_DUAL_SIM_MASTER__
    if (jam_get_sim_id() == WAP_SIM_ID_SIM2)
    {
        p->isSlave = KAL_TRUE;
    }
    else
    {
        p->isSlave = KAL_FALSE;
    }
#endif /* __MMI_DUAL_SIM_MASTER__ */

    if (p->dcs == SMSAL_DEFAULT_DCS)
    {
        /* The max control buffer size is 2K. So we limit the max size 1920 here. */
        if ((buflength * 2) > 1920)
        {
            free_local_para((local_para_struct*) p);
            return J2ME_SMS_CONTENT_SIZE_EXCEED;
        }

        p->msg = (kal_uint8*) get_ctrl_buffer((kal_uint16) ((buflength + 1) * 2));
        memset((S8*) p->msg, 0, (buflength + 1) * 2);
        mmi_frm_sms_handle_extension_char((U16*) p->msg, (U16*) pBuffer, (U16) (buflength >> 1));

        p->msg_length = mmi_ucs2strlen((const S8*)p->msg);
    }
    else
    {
        /* The max control buffer size is 2K. So we limit the max size 1920 here. */
        if (buflength > 1920)
        {
            free_local_para((local_para_struct*) p);
            return J2ME_SMS_CONTENT_SIZE_EXCEED;
        }

        p->msg = (kal_uint8*) get_ctrl_buffer((kal_uint16) (buflength + 1));
        memset((S8*) p->msg, 0, (buflength + 1));
        memcpy(p->msg, pBuffer, buflength);

        p->msg_length = buflength / 2;
    }

    if (addr[0] == (short)'+')
    {
        p->addr.type = CSMCC_INTERNATIONAL_ADDR;
        addr++;
    }
    else
    {
        p->addr.type = CSMCC_DEFAULT_ADDR_TYPE;
    }

    len = (int)mmi_ucs2strlen((const S8*)addr);
    if (len > MAX_CC_ADDR_LEN / ENCODING_LENGTH)
    {
        len = MAX_CC_ADDR_LEN / ENCODING_LENGTH;
    }
    p->addr.length = len;

    mmi_ucs2_n_to_asc((S8*) p->addr.number, (S8*) addr, p->addr.length * ENCODING_LENGTH);
    p->addr.number[p->addr.length] = '\0';

    jwa_sms_set_state(JWA_SMS_STATE_SEND);

    SEND_MESSAGE(MOD_JASYN, MOD_MMI, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_SEND_REQ, p, NULL);

    kal_trace(TRACE_INFO, WMA_SMS_SEND_TEXT1);
    return J2ME_SMS_BLOCK;
}


/*****************************************************************************
 * FUNCTION
 *  _jwa_sms_check_incoming_msg
 * DESCRIPTION
 *  check if message coming
 * PARAMETERS
 *  portNumber      [IN]        
 *  only_new        [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int _jwa_sms_check_incoming_msg(long portNumber, kal_bool only_new)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_check_incoming_msg_req_struct *p = NEW_LOCAL_PTR(mmiapi_sms_check_incoming_msg_req_struct);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_CHECK_INCOMING, (int)portNumber);

    p->blocking_data = NULL;
    p->port_number = (int)portNumber;
    p->only_new = (kal_bool) only_new;

    jwa_sms_set_state(JWA_SMS_STATE_CHECK_INCOMING_MSG);

    SEND_MESSAGE(MOD_JASYN, MOD_MMI, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_CHECK_INCOMING_MSG_REQ, p, NULL);
    kal_trace(TRACE_INFO, WMA_SMS_CHECK_INCOMING1);

    return J2ME_SMS_BLOCK;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_check_incoming_msg
 * DESCRIPTION
 *  check if message coming
 * PARAMETERS
 *  portNumber      [IN]        
 *  only_new        [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_check_incoming_msg(long portNumber, kal_bool only_new)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

#ifdef J2ME_SUPPORT_BACKGROUND
    /* SMS service is not available during bg running state */
    if (jvm_get_state() == JVM_BG_RUNNING_STATE)
    {
        sprintf(_kvmLogStr,"jwa_sms_check_incoming_msg: BG running state \n");
    	Kprintf();
    
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */
    
#ifdef __SUPPORT_INFUSIO__
	//if ( jvm_get_current_game_type() == GAMETYPE_INFUSIO_EUREKA)
	{
        kal_uint8 timestamp[7];                
		kal_uint8 *msg = NULL;
		int msg_len = 0;
        int type = 0;
        
		/* If found an matched entry in persistent queue, send */
        if ((msg = jpush_eureka_check_smsqueue_without_remove(&type, &msg_len, portNumber, (kal_uint16*)j2me_sms_tel_num_ucs2, (kal_uint8*)timestamp)) != NULL) {            
			mmiapi_sms_check_incoming_msg_rsp_struct *p = NEW_LOCAL_PTR(mmiapi_sms_check_incoming_msg_rsp_struct);

			p->result = type;
            free_ctrl_buffer(msg);
            
            jwa_sms_set_state(JWA_SMS_STATE_CHECK_INCOMING_MSG);
            
			/* Fake to send get incoming data rsp to self */
			SEND_MESSAGE(MOD_J2ME, MOD_JASYN, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_CHECK_INCOMING_MSG_RSP, p, NULL);
            return J2ME_SMS_BLOCK;
		}
	}
#endif /* __SUPPORT_INFUSIO__ */

    return _jwa_sms_check_incoming_msg(portNumber, only_new);
}

/*****************************************************************************
 * FUNCTION
 *  _jwa_sms_receive_binary_msg_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int _jwa_sms_receive_binary_msg_req(long portNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_get_incoming_msg_req_struct *p = NEW_LOCAL_PTR(mmiapi_sms_get_incoming_msg_req_struct);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_RECV_BINARY, (int)portNumber);

    p->blocking_data = NULL;
    p->port_number = (int)portNumber;
    
    jwa_sms_set_state(JWA_SMS_STATE_GET_INCOMING_MSG);

    SEND_MESSAGE(MOD_JASYN, MOD_MMI, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_GET_INCOMING_MSG_REQ, p, NULL);

    kal_trace(TRACE_INFO, WMA_SMS_RECV_BINARY1);
    return J2ME_SMS_BLOCK;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_receive_binary_msg_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_receive_binary_msg_req(long port)
{  	
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

#ifdef J2ME_SUPPORT_BACKGROUND
    /* SMS service is not available during bg running state */
    if (jvm_get_state() == JVM_BG_RUNNING_STATE)
    {
        sprintf(_kvmLogStr,"jwa_sms_receive_binary_msg_req: BG running state \n");
    	Kprintf();
    
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

#ifdef __SUPPORT_INFUSIO__
	//if ( jvm_get_current_game_type() == GAMETYPE_INFUSIO_EUREKA)
	{
		kal_uint8 *msg;
		int msg_len;

		/* If found an matched entry in persistent queue, send */
		if ((msg = jpush_eureka_check_smsqueue((int)port, &msg_len)) != NULL) {
			mmiapi_sms_get_incoming_msg_rsp_struct *p = NEW_LOCAL_PTR(mmiapi_sms_get_incoming_msg_rsp_struct);

			p->message = msg;
			p->message_len = msg_len;

            jwa_sms_set_state(JWA_SMS_STATE_GET_INCOMING_MSG);
            
			/* Fake to send get incoming data rsp to self */
			SEND_MESSAGE(MOD_J2ME, MOD_JASYN, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_GET_INCOMING_MSG_RSP, p, NULL);
            return J2ME_SMS_BLOCK;
		}
	}
#endif /* __SUPPORT_INFUSIO__ */

	return _jwa_sms_receive_binary_msg_req(port);
}

/*****************************************************************************
 * FUNCTION
 *  jwa_sms_receive_binary_msg_rsp
 * DESCRIPTION
 *  
 * PARAMETERS
 *  len     [?]     
 * RETURNS
 *  pointer to received buffer
 *****************************************************************************/
char *jwa_sms_receive_binary_msg_rsp(int *len)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (JWA_SMS_STATE_GET_INCOMING_MSG == jwa_sms_get_state())
    {
        jwa_sms_set_state(JWA_SMS_STATE_IDLE);
    }
    else
    {
        sprintf(_kvmLogStr,"jwa_sms_receive_binary_msg_rsp: STRANGE state= %d\n", jwa_sms_get_state());
        Kprintf();
    }
    
    *len = j2me_sms_receive_len;
    return (char*)j2me_sms_recceive_data_ptr;
}


/*****************************************************************************
 * FUNCTION
 *  _jwa_sms_receive_text_msg_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int _jwa_sms_receive_text_msg_req(long portNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_get_incoming_msg_req_struct *p = NEW_LOCAL_PTR(mmiapi_sms_get_incoming_msg_req_struct);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_RECV_TEXT, (int)portNumber);

    p->blocking_data = NULL;
    p->port_number = (int)portNumber;

    jwa_sms_set_state(JWA_SMS_STATE_GET_INCOMING_MSG);

    SEND_MESSAGE(MOD_JASYN, MOD_MMI, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_GET_INCOMING_MSG_REQ, p, NULL);

    kal_trace(TRACE_INFO, WMA_SMS_RECV_TEXT1);

    return J2ME_SMS_BLOCK;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_receive_text_msg_req
 * DESCRIPTION
 *  
 * PARAMETERS
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_receive_text_msg_req(long port)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/

#ifdef J2ME_SUPPORT_BACKGROUND
    /* SMS service is not available during bg running state */
    if (jvm_get_state() == JVM_BG_RUNNING_STATE)
    {
        sprintf(_kvmLogStr,"jwa_sms_receive_text_msg_req: BG running state \n");
    	Kprintf();
    
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

#ifdef __SUPPORT_INFUSIO__
	//if ( jvm_get_current_game_type() == GAMETYPE_INFUSIO_EUREKA)
	{
		kal_uint8 *msg;

⌨️ 快捷键说明

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