mre应用和native的新增API接口可以实现mre单方面的调用native的代码,那如何实现native端调用mre里面的接口呢?比如现在来电话了,mre应用里面就对应的有些逻辑要处理,来电话了是native端的实时监控,这时native端怎么调用到mre里面的代码呢?可以通过向mre应用发送消息。

现在以mtk 50_11BW1224_FTE的版本为基础,实现在主菜单进入短信服务时,便启动mre应用test.vxp,然后向其发送MESSAGE_ENTRY消息。test.vxp接收到MESSAGE_ENTRY,然后输出”进入短息服务“到屏幕上。

1、找到\plutommi\mmi\UnifiedMessage\UnifiedMessageSrc\uminterface.c 里面的void mmi_um_entry_main_message_menu(void)函数,这个函数就是进入短信服务界面的入口点了,这里修改mmi_um_entry_main_message_menu成如下,


#include "TimerEvents.h"
#include "vmpromng.h"
#include "Conversions.h"
#include "vmappcomm_sdk.h"
#include "vmio.h"//自定义消息值
#define MESSAGE_ENTRY 210static void mmi_send_msg_timer_func(void)
{U8* filepath = "E:\\mre\\test.vxp";U16 w_filepath[256] = {0};S32 mre_app_handle = 0;mmi_chset_convert(MMI_CHSET_GB2312, MMI_CHSET_UCS2, (U8*)filepath, (U8*)w_filepath, 256);StopTimer(AVATAR_DELAY_DECODE_0);mre_app_handle = srv_mre_get_running_handle(w_filepath);if(mre_app_handle > 0){srv_mre_send_msg(mre_app_handle,MESSAGE_ENTRY, NULL, NULL); //发送消息}
}void mmi_um_entry_main_message_menu(void)
{U8* filepath = "E:\\mre\\test.vxp";//test.vxp的存放路径,这里是放在T卡mre下U16 w_filepath[256] = {0};VMFILE fd = 0;mmi_chset_convert(MMI_CHSET_GB2312, MMI_CHSET_UCS2, (U8*)filepath, (U8*)w_filepath, 256);fd = vm_file_open(w_filepath, MODE_READ, 0);vm_file_close(fd);if(fd >= 0){vm_start_app(w_filepath, GRP_ID_ROOT, 1);//启动vxpif(mmi_sms_is_new_msg_come()){mmi_sms_set_new_msg_come(FALSE);//启动vxp是用timer启动的,而消息必须在vxp运行//起来后才能发送,故发消息也用timer延迟StartTimer(AVATAR_DELAY_DECODE_0, 500, mmi_send_msg_timer_func);}return;}
}

2、mre应用如何接受处理MESSAGE_ENTRY消息

首先要在vm_main里面为注册一个消息处理函数,下面的vm_reg_msg_proc(handle_msg);既是将handle_msg这个函数注册成为消息处理函数了。


void vm_main(void) {/* initialize layer handle */layer_hdl[0] = -1;    /* register system events handler */vm_reg_sysevt_callback(handle_sysevt);/* register keyboard events handler */vm_reg_keyboard_callback(handle_keyevt);/* register pen events handler */vm_reg_pen_callback(handle_penevt);vm_reg_msg_proc(handle_msg);/* Init MRE resource */vm_res_init();
}

消息处理,在handle_msg这个函数中处理消息#define MESSAGE_ENTRY 210,这里需要保证native和mre应用中的两个消息值一致


#define MESSAGE_ENTRY 210VMINT handle_msg(VM_P_HANDLE sender, VMUINT msg_id, VMINT wparam, VMINT lparam)
{switch (msg_id){case MESSAGE_ENTRY:{VMWCHAR wstr[256] = {0};vm_gb2312_to_ucs2(wstr, 256, "进入短信服务!");draw_text(wstr);break;}}return 0;
}

转载于:https://www.cnblogs.com/WIT-Evan/archive/2012/07/19/7291486.html

mre应用和Native的交互之消息传递相关推荐

  1. mre应用和Native的交互之增加mre sdk接口

    经常碰到mre sdk功能不够完善的情况,没有实现功能的API,这个时候怎么办呢?在mtk 的Native端(也就是CodeBase里)增加接口,扩展到mre的sdk中.下面是扩展mtk Mre sd ...

  2. dcloud html5 sdk,DCloud H5与Android Native的交互--5+ SDK插件开发

    DCloud 5+ SDK插件开发 http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/66 开发文档的链接 首先官方文档这 ...

  3. python多项式回归_如何在Python中实现多项式回归模型

    python多项式回归 Let's start with an example. We want to predict the Price of a home based on the Area an ...

  4. Html5页面和Native App怎么进行交互

    webview系列:Html5页面和Native App怎么进行交互 混合开发的App(Hybrid App)就是在一个App中内嵌一个轻量级的浏览器,一部分原生的功能改为Html5来开发,这部分功能 ...

  5. Native与H5交互的那些事

    前言 Hybrid开发模式目前几乎每家公司都有涉及和使用,这种开发模式兼具良好的Native用户交互体验的优势与WebApp跨平台的优势,而这种模式,在Android中必然需要WebView作为载体来 ...

  6. c html联调,JS与native 交互简单应用

    JS与native 交互简单应用 一.objectiveC 语法简介 二.简易项目浏览器搭建 新建项目步骤: 1> DraggedImage.png 2> 2222.png 3> 3 ...

  7. 【前端基础】Web与Native交互之The JSBridge FAQ

    今天我们来简单聊一下JSBridge 为什么要聊JSBridge? 不为什么 好吧,JSBridge虽然也算比较古老了,但关于JSBridge的原理也是一个目前作为一名前端开发人员需要了解掌握的知识. ...

  8. 《React-Native系列》2、RN与native交互与数据传递

    RN怎么与native交互的呢? 下面我们通过一个简单的Demo来实现:RN页面调起Native页面,Native页面选择电话本数据,将数据回传给RN展示. 首先是 Native侧 1.MainAct ...

  9. Duilib嵌入CEF以及JavaScript与C++交互

    转载:http://blog.csdn.net/foruok/article/details/50573612 转载:http://blog.csdn.net/foruok/article/detai ...

最新文章

  1. ROI Align 在 R-FCN 中的推广:PSROI-Align(附代码)
  2. Kubernetes 容器编排
  3. idea查看方法的返回类型和自动出来变量
  4. 获取当前日期时间并格式化 - 常见格式
  5. 测试连接redis时报错redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.
  6. squid via检测转发循环
  7. python双向索引什么意思_Python 双向链表的实现
  8. 打开浏览器不是主页_教你如何锁定电脑浏览器主页防止被篡改
  9. Profile Options In INV,PO,OM,MS/MRP
  10. spark 通过打散热点key解决数据倾斜问题
  11. 根据经纬度查询数据mysql
  12. 数值微积分与方程求解
  13. 经典搜索算法之B树与B+树
  14. AWS云计算题目总结
  15. 使用Python+Pandas+Statsmodels建立线性回归模型预测房价
  16. 尤雨溪告诉你为什么Vue比yox优秀
  17. C语言自学路之计算平方(输入验证)
  18. 工作了4年的JAVA程序员应该具备什么技能?
  19. 《为什么精英都是时间控》读书总结
  20. SOJ 4583 动态规划之分组背包

热门文章

  1. python微博自动投票_python自动投票(新手学python)
  2. 海康大华等网络摄像机监控视频RTSP/RTMP推流网页播放/直播无需插件低延迟解决方案研究
  3. app的维护成本怎么算?
  4. DHT11温湿度模块驱动程序
  5. sketch measure 导出html,Sketch measure 导出规范卡住的问题
  6. TDS 以及 FDS 光谱系统的成像光束
  7. dlt变换matlab,直接线性变换(DLT)简易程序实现
  8. AD7760转换原理及采集程序设计 (24位Σ-Δ型ADC)
  9. 新手摆摊进来看看(明确卖什么很关键)
  10. 使用Fireworks和Icofx制作一个ICO图标