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

📄 jwa_sms.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:

        p = NEW_LOCAL_PTR(mmiapi_sms_register_port_req_struct);
        blocking = mmiapi_get_blocking_data(MOD_JASYN);

        p->blocking_data = blocking;
        p->enable = KAL_FALSE;
        p->port_number = (int)portNumber;
        p->remove_reminder_data = KAL_TRUE;

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

        kal_trace(TRACE_INFO, WMA_SMS_UNREGISTER2);
        mmiapi_lock(MOD_JASYN); /* waiting the unregister port number result */
        kal_trace(TRACE_INFO, WMA_SMS_UNREGISTER3, blocking->result);

        ret = blocking->result ? 0 : -1;

        resouceDereg(JAVA_WMA_SMS_DEVICE, portNumber);
#endif /* __MMI_DUAL_SIM_MASTER__ */ 
    }

    return ret;
}


/*****************************************************************************
 * FUNCTION
 *  J2ME_sms_unregister_all
 * DESCRIPTION
 *  
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void J2ME_sms_unregister_all(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_register_port_req_struct *p = NEW_LOCAL_PTR(mmiapi_sms_register_port_req_struct);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_UNREGISTERALL);

    p->blocking_data = NULL;
    p->enable = KAL_FALSE;
    p->port_number = (int)-1;

    SEND_MESSAGE(MOD_JASYN, MOD_MMI, MMI_J2ME_SAP, MSG_ID_MMIAPI_SMS_REGISTER_PORT_REQ, p, NULL);
}


/*****************************************************************************
 * FUNCTION
 *  J2ME_sms_unregister_by_resource_manager
 * DESCRIPTION
 *  
 * PARAMETERS
 *  portNumber      [IN]        
 * RETURNS
 *  
 *****************************************************************************/
int J2ME_sms_unregister_by_resource_manager(int portNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_blocking_data_struct *blocking;
    mmiapi_sms_register_port_req_struct *p = NEW_LOCAL_PTR(mmiapi_sms_register_port_req_struct);

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

    blocking = mmiapi_get_blocking_data(MOD_JASYN);

    p->blocking_data = blocking;
    p->enable = KAL_FALSE;
    p->port_number = (int)portNumber;
    p->remove_reminder_data = KAL_TRUE;

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

    kal_trace(TRACE_INFO, WMA_SMS_UNREGISTER_BY_MGR1);
    mmiapi_lock(MOD_JASYN); /* waiting the unregister port number result */
    kal_trace(TRACE_INFO, WMA_SMS_UNREGISTER_BY_MGR2);
    return RESOUCE_NO_ERROR;
}


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

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Need to Port */
    return NULL;
}


/*****************************************************************************
 * FUNCTION
 *  J2ME_sms_ansii_n_to_unicode
 * DESCRIPTION
 *  
 * PARAMETERS
 *  pOutBuffer      [?]         
 *  pInBuffer       [?]         
 *  len             [IN]        
 * RETURNS
 *  stuff zero between characters
 *****************************************************************************/
U16 J2ME_sms_ansii_n_to_unicode(S8 *pOutBuffer, S8 *pInBuffer, U32 len)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    S16 count = -1;
    U8 charLen = 0;
    U8 arrOut[2];

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    while (len)
    {
        mmi_wc_to_ucs2((U16) * pInBuffer, &charLen, arrOut);

        pOutBuffer[++count] = arrOut[0];
        pOutBuffer[++count] = arrOut[1];
        pInBuffer++;

        len--;
    }
    return count + 1;
}


/*****************************************************************************
 * FUNCTION
 *  j2me_process_recvd_sms_ind
 * DESCRIPTION
 *  
 * PARAMETERS
 *  ilm_ptr     [?]     
 * RETURNS
 *  void
 *****************************************************************************/
void *j2me_process_recvd_sms_ind(ilm_struct *ilm_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_ind_struct *sms_ind_ptr = (mmiapi_sms_ind_struct*) ilm_ptr->local_para_ptr;
    int port = sms_ind_ptr->port_number;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return push_process_recvd_sms_ind(port);
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_register
 * DESCRIPTION
 *  register sms port and type
 * PARAMETERS
 *  portNumber      [IN]        
 *  type            [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_register(long portNumber, int type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    mmiapi_sms_register_port_req_struct *p;
    int ret;

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

#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_register: BG running state \n");
    	Kprintf();
        
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

    ret = j2me_check_push_register_port(portNumber, type);

    if (ret == NON_REGISTERED)
    {

    #ifdef __MMI_DUAL_SIM_MASTER__
        ret = J2ME_sms_register_sim_type(portNumber, type, JWA_SMS_SIM_TYPE_SIM2);

        if (ret != 0)
        {
            return J2ME_SMS_NOT_AVAILABLE;
        }
    #endif /* __MMI_DUAL_SIM_MASTER__ */

        /* Only when the port is not registered, it can apply registration to low-layer */
        p = NEW_LOCAL_PTR(mmiapi_sms_register_port_req_struct);

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

#ifdef __MMI_DUAL_SIM_MASTER__
        p->isSlave = KAL_FALSE;
#endif /* __MMI_DUAL_SIM_MASTER__ */

        j2me_sms_register_enable = KAL_TRUE;
        j2me_sms_register_type = type;
        j2me_sms_register_port = (int)portNumber;

        jwa_sms_set_state(JWA_SMS_STATE_REGISTER_PORT);

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

        kal_trace(TRACE_INFO, WMA_SMS_REGISTER1);

        return J2ME_SMS_BLOCK;
    }
    return J2ME_SMS_PORT_IN_USE_BY_PUSH;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_send_binary_message
 * DESCRIPTION
 *  send binary message
 * PARAMETERS
 *  addr            [?]         
 *  pBuffer         [?]         
 *  buflength       [IN]        
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_send_binary_message(unsigned short *addr, char *pBuffer, int buflength, long portNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int len;
    mmiapi_sms_send_req_struct *p = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_SEND_BINARY);

#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_binary_message: BG running state \n");
    	Kprintf();
    
        return J2ME_SMS_NOT_AVAILABLE;
    }
#endif /* J2ME_SUPPORT_BACKGROUND */

    p = NEW_LOCAL_PTR(mmiapi_sms_send_req_struct);

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

    p->blocking_data = NULL;
    p->msg_length = buflength / 2;

    p->dcs = SMSAL_8BIT_DCS;
    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__ */

    /* Check if the size exceeds the limitation of control buffer */
    if (buflength > 2048)
    {
        free_local_para((local_para_struct*) p);
        return J2ME_SMS_CONTENT_SIZE_EXCEED;
    }

    /* Prevent to allocate control buffer with zero size */
    if (buflength == 0)
    {
        buflength += 2;
    }
    
    p->msg = (kal_uint8*) get_ctrl_buffer((kal_uint16) buflength);

    J2ME_sms_ansii_n_to_unicode((S8*) p->msg, (S8*) pBuffer, (U32) p->msg_length);

    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_BINARY1);

    return J2ME_SMS_BLOCK;
}


/*****************************************************************************
 * FUNCTION
 *  jwa_sms_send_text_message
 * DESCRIPTION
 *  send text message
 * PARAMETERS
 *  addr            [?]         
 *  pBuffer         [?]         
 *  buflength       [IN]        
 *  portNumber      [IN]        
 * RETURNS
 *  J2me_sms_result_enum
 *****************************************************************************/
int jwa_sms_send_text_message(unsigned short *addr, unsigned short *pBuffer, int buflength, long portNumber)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    int len;
    BOOL isUcs2Char = 0;

    mmiapi_sms_send_req_struct *p = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_trace(TRACE_INFO, WMA_SMS_SEND_TEXT);

⌨️ 快捷键说明

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