如何开机启动某个Java应用

某个预置的java应用如果需要开机后马上启动,可以参考如下方法。适用于Pluto的项目。 
[SOLUTION] 
思路: 
1、    客制化java启动入口。 
2、    将入口放置在进入idle后调用。 
参考代码: 
"IdleAdapter.c" 
1. kal_bool first_bootup = KAL_TRUE;  
2. mmi_idle_handle_idle_group_enter()最后 
... 
    if (!is_idle_init_done) 
    { 
        TurnOffBacklight(); 
        StartLEDPatternBackGround(); 
    #if defined(OBIGO_Q03C) && defined(WAP_SUPPORT) 
        MMIProcessActionMsg(); 
    #endif 
        mmi_sim_rearrange_menu_item(); 
    #ifdef __MMI_AUTO_ANSWER_MACHINE__ 
        mmi_autoam_init_statusicon(); 
    #endif 
        is_idle_init_done = MMI_TRUE; 
    } 
     
    if(first_bootup) 
    { 
        first_bootup = KAL_FALSE; 
        my(); 
    } 
    return MMI_RET_OK; 

 
"JavaAgencyGProt.h" 
3. extern void my_send_mid_getlist_req(int mids_index); 
"JavaAgencySrc.c" 
 
4. void my_send_mid_getlist_req(int mids_index) 

    /*----------------------------------------------------------------*/ 
    /* Local Variables                                                */ 
    /*----------------------------------------------------------------*/ 
    mmi_java_mid_getlist_req_struct *msg; 
    g_java.mids_index = mids_index;//The index of running midlet 
    /*----------------------------------------------------------------*/ 
    /* Code Body                                                      */ 
    /*----------------------------------------------------------------*/ 
    if (mmi_java_need_block_msg()) 
    { 
        mmi_java_display_push_busy(); 
        return; 
    } 
#ifndef __MVM__ 
    if (mmi_java_check_and_display_is_busy()) 
    { 
        return; 
    } 
#endif /*__MVM__*/ 
    /* sometime will quickly re-entry this function before 
       java handle this message  */ 
    if ((g_java.msg_ctrl & SEND_MID_GET_LIST_CTRL)||(g_java.msg_ctrl & SEND_MIDS_GET_LIST_CTRL)) 
    { 
        return; 
    } 
    else 
    { 
        g_java.msg_ctrl |= SEND_MID_GET_LIST_CTRL; 
    } 
    //must change mids_root 
    if(mmi_wcslen((const U16 *)g_java.mids_info[mids_index].storage_name) < 127) 
    {         
        mmi_wcscpy((U16 *) g_mmi_java_current_selected_mids_root, (const U16
*)g_java.mids_info[mids_index].storage_name); 
    } 
    else 
    {                  
        mmi_wcsncpy((U16 *) g_mmi_java_current_selected_mids_root, (const U16
*)g_java.mids_info[mids_index].storage_name, 127); 
    } 
     
    ClearInputEventHandler(MMI_DEVICE_ALL); 
     
    MMI_TRACE(MMI_TRACE_FUNC, MMI_JAVA_SEND_MID_GETLIST_REQ); 
    msg = (mmi_java_mid_getlist_req_struct*)
OslConstructDataPtr(sizeof(mmi_java_mid_getlist_req_struct)); 
    msg->session_id = 0; 
    msg->game_type = GAMETYPE_JAVA_GAME; 
    msg->extend_mode = KAL_FALSE; 
    msg->mids_id = g_java.mids_info[g_java.mids_index - g_java.mids_info_start].mids_id; 
    mmi_java_send_message(MOD_MMI, MOD_JAM, MMI_J2ME_SAP, 
        MSG_ID_MMI_JAVA_MID_GETLIST_REQ, msg, NULL); 

 
"MainMenu.c" 
5. #include "JavaAgencyProt.h" 
#include "JavaAgencyGProt.h" 
 
6. 
extern java_context_struct g_java; 
void my(void){ 
    /*----------------------------------------------------------------*/ 
    /* Local Variables                                                */ 
    /*----------------------------------------------------------------*/ 
    int mids_index = 1;//启动第二个java应用,index从0(第一个java应用)开始 
    /*----------------------------------------------------------------*/ 
    /* Code Body                                                 */ 
    /*----------------------------------------------------------------*/ 
    g_java.mids_info_end = g_java.mids_info_start = -1; 
    g_java.mids_list_filter.filter_type = JAM_NONE_FILTER; 
    needToSendGetListReq = MMI_TRUE; 
    mmi_java_fetch_mids_list(0,(UI_string_type)NULL,(PU8 *)NULL,0); 
    my_send_mid_getlist_req(mids_index); 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值