《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之53---BREW SDK 九大功能之电信服务-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之53---BREW SDK 九大功能之电信服务

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/5456725

能够直接提供电信服务是BREW技术的一大特色。BREW中支持的电信服务主要是指语音业务,以及附加业务短消息功能,蓝牙通信功能,小区多播通信功能等等。在BREW3.X之前,语音和短信功能都可以通过ITAPI接口来提供,在BREW 3.X及以上版本,这一方法同样有限。

ITAPI 是一个简单的设备通话层接口。 它可提供以下服务: 获取通话状态,安排语音呼叫,从 SMS 消息中提取 SMS 文本 ,获取进入或正在呼叫的主叫号码 ,注册 SMS 消息,发送 SMS 消息等功能。ITAPI 允许应用程序注册以下通知: NMASK_TAPI_STATUSNMASK_TAPI_SMS_TEXTNMASK_TAPI_SMS_TS

应用程序通过ITAPI接口可以接收 SMS 消息:

1. 目标为 BREW 应用的定向 SMS 消息,发送形式为 //BREW:<ClassID>:<消息> 。在指定目标应用的ClassID 时,ITAPI_SendSMS() 将消息内部进行格式化操作

2. 所有文本消息

3. 所有特定电信业务 ID 的消息

4. 所有具有特定前缀的文本消息

其中,接收指向应用程序的SMS不需要注册,作为 EVT_APP_MESSAGE 事件接收,dwParam 包含指向短信有效负载的指针,该有效负载可作为 char * pszMsgTxt = (char *)dwParam

对于访问接收任意文本消息,应用程序必须使用 NMASK_TAPI_SMS_TEXT 掩码注册 TAPI 类,作为 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指针。消息可作为 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSTextMsg * pTextMsg = (AEESMSTextMsg*)pNotify->pData; 

如果接收特定电信业务消息,应用程序必须使用以下掩码 uint32 mask = (NMASK_TAPI_SMS_TS |(SMS_TELESERVICE_ID << 16)) 进行注册,作为 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指针 消息可作为 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSMsg *pMsg = (AEESMSMsg *)pNotify->pData;

如果访问接收具有特定前缀的文本消息: 消息格式为 //<SMS_Prefix>:<Message_Text> 应用程序必须注册为 <SMS_Prefix> 的处理程序 ,作为 EVT_APP_BROWSE_URL 接收。dwParam 包含指向 //<SMS_Prefix>:<Message_Text> 的指针。

通过BREW中的ITAPI可以获知设备状态的更改,通过NMASK_TAPI_STATUS掩码, 只要设备的通话状态发生变化,应用程序都可以使用 TAPI 类获得通知。只要状态发生变化,应用程序就会收到 EVT_NOTIFY 事件。 此事件的 dwParam AEENotify 类型。 AEENotify 结构内的 pData 成员属于 TAPIStatus 类型,并包含设备当前通话状态的详细信息。

            BREW 3.x专门为短信提供了新的接口ISMSMsgISMSISMSNotifier,和ISMSStorage  新接口完整实现了短信协议TIA-EIA-637-A,而旧接口仅部分实现此协议。就短信发送而言,新接口主要支持下面三种编码格式:

l  ASCII     单位:字节,   最大长度:160

l  UNCODE 单位:双字节,最大长度:70

l  BINARY   单位:字节,   最大长度:140

原有接口仅支持一种编码格式,由AEE_DEVICEITEM_TAPI_SMS_ENCODING指定。就短信接收而言,新接口可以得到更多信息:短信内容/编码格式,发送方号码,短信中心接收到短信的时刻等,而旧接口仅能得到短信内容。ISMSStorage  & ISMSStorage2用来存储,读取,删除和更新短信。存储的类型包括RUIM卡和手机自身。

BREW 3.X及以上版本还提供了对一般语音付、蓝牙和WIFI的完整支持,使应用可以获得更广泛的通信能力。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章