专注于Blackberry

每周一技: ServiceBook初探

关于Service Book,已经不止一次在本站讨论了。在这里还是简单概括一下:服务的配置。例如,上网,需要有GPRS和WAP的配置,对WIFI,有WIFI的配置。 本文是Service Book的初探,有必要的话或需求的话,我会更深一步讲解。 首先介绍如何访问机器上的Service Book,要实现这个功能,我们可以参考一下API,API已经提供了相关的接口了。代码如下: ServiceBook sb = ServiceBook.getSB(); ServiceRecord[] srs = sb.getRecords(); 通过ServiceRecord,我们可以得到什么内容呢? CID,比如邮件的CID为CMIME,可以通过srs[i].getCid得到相关内容 APN,既然访问网络,APN也必须得到,这对于一些网络编程非常有帮助 网络地址,和网络类型 其他 我建议看看ServiceRecord 该类的文档,说不定有意想不到的收获。 现在给出一个完整的例子: public void listServiceBook() { ServiceBook sb = ServiceBook.getSB(); ServiceRecord[] srs = sb.getRecords(); for(int index = srs.length – 1; index >= 0; –index) { //identify the service record associated with a mail message service [...]

继续阅读本文 →

Taigoo发表于 July 23, 2009 6:09 pm | 留言(7) |每周一技 

故技重施:Blackberry Push API

大概是6月初,RIM以很强的声势推出一个新服务,名曰Blackberry Push API。在没有看文档前,我非常憧憬RIM能给我们带来惊喜。但是我看完之后,发现RIM仅仅把原来的技术重新包装了一遍。 从商业的角度讲,我非常赞成RIM的这种做法,现在的很多新概念有很多都是把N年以前的东西拿出来翻新一下,例如AJax,SaaS等,都取得了不错的效果。 但是从技术角度上讲,也确实没什么。 我将该服务总结为一句话,即将Blackberry最具特色的PUSH功能应用到客户的需求上。 即便如此,我还是将我N年以前使用过的技术重温一下,顺便也说说PUSH API 的应用。 应用背景: 先举个例子,未必是真实的。假如上海有家出租车公司小众(不是大众),要通知司机小张,有个客户在人民广场的来福士广场有个客户于14:00需要车,那么小众通过何种方式将这个信息传给小张呢?假如小众公司正在使用Blackberry的服务,那么可以通过Alert的方式来实现。 现在总结一下: alert 新闻 财经 定单 文档 体育 服务不仅仅限于上面。 原理: 先看张图 简要解释一下: 先解释身份角色: Push Initiator:相当于小众公司,后面见车简称PI Blackberry Push Data Server:相当于部署在小众公司的Blackberry服务基础架构,后面简称BPIS Mobile Client:司机小张的Blackberry终端,简称,MC 再解释一下流程: PI发送一个push请求,即客户信息 BPIS给出一个返回给PI BPIS就请求push给MC MC收到后给出一个ACKnowledge,确认 BPIS给PI一个通知 PI收到后给BPIS一个返回 类似的机制和互联网的三次握手类似,就是Request/ACK/Response.目的就是为了保证大家都收到。 优点 很显然,省电,能够及时送达,安全,包括传送,以及安全送达。 实现 PAP XML HTTP 请求 几种push,例如submit,cancel,query等,具体技术细节不讲,因为这些又可以单独拿出来了。 综合上述,如果您熟悉PUSH,是不是觉得似曾相识呢。 不管怎么说,从中,我们可以进一步,也更清晰了解Blackberry PUSH这个概念。这在以后的解决方案中提供不少思路。

继续阅读本文 →

Taigoo发表于 June 29, 2009 7:46 pm | 留言(2) |开发 

BlackBerry 应用程序开发者指南 第一卷:基础–附录:MDS服务参考

B              附录:MDS服务参考 HTTP请求 HTTP响应 HTTPS支持 编码转化器 创建编码转化器 编译和安装编码转化器   HTTP请求[1] 一个客户端建立一个连接,并且发送一个HTTP请求消息到服务器.服务器然后发送一个响应消息,这个消息通常包含了请求的资源. <method> <resource_path><version> Header1: value1 Header2: value2 Header3: value3 <optional message> HTTP请求变量 描述 method 方法名,指定了一个动作,例如GET,HEAD或POST.常用的方法是GET,它从服务器请求一个资源. resource_path 指向请求资源的路径,它是URL中的一部分,在主机名后面出现.它也称为请求URL(Request URL). version 你正在运行的HTTP版本,标记为”HTTP /x.x”.BES支持1.0和1.1版本. Header 提供了关于请求的或在消息体里发送的对象的信息. optional message HTTP消息可以包含数据.在一个请求里,它是发送到服务器的用户类型的数据,或上传的文件.当一个对象伴随着此消息时,请求通常也包含定义它属性的消息头. HTTP响应 在HTTP请求消息的接收之上,服务器发送一个响应消息,它通常包含了请求的资源. <HTTP version><status_code><reason> Header1: value1 Header2: value2 Header3: value3 <message>   HTTP响应变量 描述 HTTP_version 正在运行的HTTP版本,标记为”HTTP /x.x”.BES支持1.0和1.1版本. status_code [...]

继续阅读本文 →

Taigoo发表于 April 23, 2008 8:41 pm | 留言 |文档