- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之85——BREW中扩展类的开发
<br />扩展类不作为独立的应用程序使用,手机用户不能直接特别购买、下载或删除它们,而是在使用此扩展类的应用程序的内部环境中处理这些功能。扩展类是一种特殊的应用,相当于应用开发商自己开发的库,在PC机上表现为DLL库,在终端上同样是mod执行文件。<br />扩展类应用从所有者的角度可以分为两种:公有扩展类和私有扩展类。公有扩展类由开发商开发和拥有,提供给其他开发使用并收费。私有扩展类可以由开发商开发和拥有,供给自己的一个或多个应用使用,与其他应用共享收益;也可以由运营商开发和拥有,由运营商发布,提供给开
2010-09-29 14:22:00 1485
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之84——BREW中的应用加载机制
在BREW中,module是基本的执行单位,在手机上体现为.mod文件,在仿真器中体现为.dll文件。一个module可以包含一个或多个applet,或一个或多个扩展类(关于扩展类有单独的章节进行阐述)。凡是在手机上与其他代码一同编译完成的叫做静态模块,凡是通过下载方式(无线下载或者数据线下载)存于文件系统中的叫动态模块。每个module都需要有标识自身的MIF文件,从BREW 3.1开始即使是静态module也需要有相应的MIF。而在BREW3.1之前,对于静态module是没有单独的MIF文件的,需要通
2010-09-29 14:11:00 2038
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之83——BREW后台应用
<br />在BREW 3.x 版本以前,后台应用根本不响应suspend和resume事件,也处理有终端用户相关的交互操作,例如按键事件等等。<br />在BREW 3.x 以后,任何应用都可以对按键事件进行处理,可以简单地通过注册掩码为NMASK_SHELL_KEY的通知来实现。通过ISHELL_StartBackgroundApplet()直接启动一个后台应用,后台应用可以直接处理EVT_APP_START_BACKGROUND 事件而不是EVT_APP_START事件。在BREW 2.x中使一个应用
2010-09-29 14:08:00 1680
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之82——BREW应用间通信之共享文件
上面讲到,IFIFO实际上就是一个文件,而且共享文件,即共享驻留数据也是BREW应用间通信最简单的一种方式。BREW中有三种驻留数据的方式:系统存储,文件和数据库。系统存储是指通过ISHELL_SetPrefs()和ISHELL_GetPrefs()来实现驻留数据的方法。ISHELL_SetPrefs()和ISHELL_GetPrefs()提供了一种方法来保存包含或读取应用或类级别首地址的数据结构,相当于VC里面的串行化,使用起来非常简便,数据由整个AEE层共享。通常在手机上还存在shared这样一个共享目
2010-09-29 14:06:00 1438
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之81——BREW应用间通信之共享内存
<br />实际上,事件传递本质上就是一种共享内存的通信方式。ICLIPBOARD可以用于实现 AEE 层中的剪切和粘贴功能,是共享内存通信的另一种重要形式。由于剪贴板数据在应用程序结束后仍可能存在,因而此函数会分配新内存并将内容复制到新的缓冲区,也就是说ICLIPBOARD_Set() 分配的内存在系统内存里,所以可以被其他的应用所使用。如果传递指针为 NULL 或大小为 0 的参数,将会释放现有的剪贴板数据。<br />目标应用希望从剪贴板获得通信内容的时候,需要使用ICLIPBOARD_EnumIni
2010-09-29 14:05:00 1410
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之80——BREW应用间通信之回调通知
<br />AEE层 支持通知的概念,通知是一种当其它应用中发生某些差错时可以为该事件注册不同应用来处理的机制。例如,可以将应用注册为在有进入的 SMS 消息时接收通知。这表示只要有进入的 SMS 消息,已注册接收通知的应用就会收到一个事件,这个事件就是 EVT_NOTIFY。通知程序就是产生通知的应用,例如: ITAPI 可充当通知程序,在有进入的 SMS 消息时就会发会通知。每当通知程序需要发送通知时,都要使用 ISHELL_Notify() 方法。 应用可以通过注册来接收通知,要这样做,一般要使用函数
2010-09-29 14:03:00 1598
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之79——BREW应用间通信之事件传递
<br />用户自定义事件的传递是应用间通信的一种有效方法。用户自定义的事件应当大于等于EVT_USER (0X7000),ISHELL_RegisterEvent()可根据输入字符串注册自定义的 AEEEvent。 该函数允许应用程序动态保留事件备用,而无须担心与其它 EVT_USER 范围事件代码发生冲突。需要注意的是,事件仅在一次开关机循环内有效,在下一次开关机注册的同一事件,很可能返回不同的 AEEEvent。如果提供了指向 pnCount 的指针,则更新事件被注册的次数。<br />事件通过 IS
2010-09-29 14:02:00 1453
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之78——BREW手机中的事件处理
<br />BREW是基于事件驱动的,可以通过ISHELL接口中的相关方法发送或接收指定的事件,事件在系统中的分发处理是通过AEE层来实现的。发送事件的方法有ISHELL_SendEvent,ISHELL_PostEvent等,接收特定事件的方法主要是通过ISHELL_RegisterNotify方法来实现,也可以通过MIF文件中的设置完成。如果应用注册了事件,AEE层在事件发生的时候就会发送EVT_NOTIFY 事件给该应用。<br /> 有些事件是不需要注册的,例如通用的系统事件E
2010-09-29 14:00:00 1625
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之77——BREW中位置信息的获得(LBS应用)
<br />IPosDet接口可以直接获得经纬度等相关信息,应用将这些信息传递给服务器与GIS系统配合使用就可以开发出各种丰富多彩的应用了,IPosDet的使用示例如下:<br />// create the instance for PosDet<br />ISHELL_CreateInstance(pi->a.m_pIShell, AEECLSID_POSDET, (void **) &(pi->m_pPosDet));
2010-09-29 13:57:00 1497
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之76——BREW中的安全性网络编程
<br />安全性的网络编程主要是通过SSL实现的,首先要创建创建SSLRoot,可用的根证书通常是常用的VeriSign 根证书。它们可以节省手持设备上的空间,并且仅保留一个副本,而不是在每个使用 SSL 的应用程序中都保留副本。手持设备仅包含常用根证书的一小部分,从而防止占用过多的空间。SSL的实现有两种方法,一种是面向socket的实现,另一种是面向http的实现及HTTPS。这里主要阐明怎样使用IWeb接口实现HTTPS的功能。<br />// defined in pMe<br />IWebOpt
2010-09-29 13:55:00 1704
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之75---BREW 中的WEB代理
<br />在中国电信运营BREW业务的时候,如果开发商需要访问互联网上的服务器资源,可能要应用相应的代理规范才可以,其实现可以有两种方式来设置proxy,一种方式是事先设置好WebOpt,这时需要如下代码增加web选项:<br /> awo[i].nId = WEBOPT_PROXYSPEC;<br /> awo[i].pVal = (void *)"http:///http://10.0.0.200:80";<br />第二种方式是在IWEB_GetResponse的参数中直接加入
2010-09-29 13:53:00 1564
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之74---BREW 中的HTTP 开发
<br />IWeb接口的主要目的是为应用产生一个HTTP请求,对文件的请求使用HTTP中的“Get”方法,上载数据是通过HTTP的“Post”方法实现的。IWEB 能够管理自己的连接和sockets,使用IWEB_GetResponse 函数就可以启动一个 web 访问。<br />请求互联网上的一个文件示例如下:<br />// Create IWeb instance<br />ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_WEB, (void **
2010-09-29 13:51:00 1536
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之73---BREW 中的socket编程
<br />对基于UDP的网络通信而言,首先需要创建ISocket接口,<br />ISocket *mySocket;<br />mySocket = INETMGR_OpenSocket(pMe->pINetMgr, AEE_SOCK_STREAM);<br />if(!mySocket) {<br /> DBGPRINTF(“Error value: %x”, INETMGR_GetLastError(pMe->pINetMgr));<br />}<br />然后,
2010-09-29 13:49:00 2038 1
原创 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之72---BREW中的特殊语音处理
<br /><br />从BREW2.X开始,针对语音处理提供了IVocoder接口。IVocoder 接口使用默认的声音路径,以捕获和播放声码器帧。由于IVocoder使用的设备也可以用来执行语音呼叫,因此使用IVocoder 的应用程序必须注意并集成 TAPI 通知,以便在启动语音呼叫时适时停止使用声码器。IVocoder 接口实现的基本流程如下:<br />1)创建IVocoder 接口,从系统层面上来看,这是给IVocoder 分配一段内存空间,内存空间的使用根据应用的需要来设置。<br />2
2010-09-18 11:53:00 1962 1
原创 新书出炉——《BREW编程实例入门》
鉴于《BREW进阶与精通》一书侧重于移动增值业务产业链上各个环节的阐述,本人与同事合作又写了一本侧重于BREW编程实战的书——《BREW编程实例入门》,希望对广大BREW程序员有所帮助。
2010-09-15 14:44:00 2545 7
计算机世界1000期特稿——信息革命的流金岁月
2008-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人