每周一技: 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 [...]
Confach发表于 July 23, 2009 6:09 pm | 留言(4) |每周一技
故技重施: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这个概念。这在以后的解决方案中提供不少思路。
Confach发表于 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
状态码的数值,它反映了客户端提出的请求的结果。例如,200(OK)说明了传输成功,404(Not Found)说明了请求的URL没有找到。
reason
reason是和状态码相关的文本消息。
Header
消息头提供了响应的信息,也提供了消息体中正在发送的对象的信息。
message
HTTP消息必须包含数据。在一个响应消息里,它提供了客户端请求的的内容。此响应也包含了定义它的属性的消息头。
注:应用程序应该检查HTTP响应消息的状态码。任何不是200(OK)的状态码都说明当建立HTTP连接时发生了一个错误。
Push请求响应状态码
为push请求连接服务,BlackBerry MDS返回2种响应码:
l PAP(Push Access Protocal)响应码。
l RIM Push响应码。
注:访问www.wapforum.org获得更多关于PAP响应码的信息。
RIM Push请求响应码
RIM Push请求响应码
描述
解释
200
OK
请求成功完成。
400
任何其他的错误。
403
访问控制错误,或者未知的邮件地址或特定的BlackBerry PIN。
服务器接收了请求,但是不能响应。
503
服务器忙,服务不可用。
当前,服务器不能管理请求,因为暂时的负载或服务器正在维护。
HTTPS支持
如果你的应用程序通过Internet访问服务器,为了提过其他的验证和安全,在TLS上建立一个安全的HTTP(HTTPS)连接。
HTTPS认证(Certificate)管理
当BlackBerry设备以代理模式请求一个HTTPS连接时,BlackBerry MDS服务为BlackBerry设备建立一个SSL连接。系统管理员配置MDS服务,要么允许连接到未信任的服务器,要么是限制访问信任的服务器,这个配置仅适用代理模式下的连接。在end-to-end模式里,BlackBerry设备建立一个SSL连接。
在BlackBerry管理器里,系统管理员编辑MDS服务属性,并且设置TLS和HTTP选项,为获得更多信息,参看BES管理指南。
注:在MDS服务模拟器里,通过设置rimpublic.property文件来允许或拒绝访问未信任的服务器。设置application.handler.https.allowUntrustedServer参数为true或false。参看177页的“配置BlackBerry MDS模拟器”获得更多信息。
如果MDS服务包含认证,MDS服务将信任一个服务器。
使用keytool安装一个认证
1. 保存认证。
2.将认证文件拷贝到MDS服务所在计算机上的C:\Java\j2re1.4.2\lib\security文件夹。
3. 为了将认证导入到键存储里,请使用keytool,它可以在JRE bin文件夹下找到,例如C:\Java\j2re1.4.2\bin.例如,输入:
keytool -import -file <cert_filename> -keystore cacerts
访问http://java.sun.com/j2se/1.3/docs/tooldocs/win32/keytool.html 获得更多关于keytool的信息。
编码转化器
BlackBerry MDS支持插件的Java应用程序,称为编码转化器,它处理BlackBerry设备发送和接收的数据。
MDS服务提供下列缺省的编码转化:
编码转化名
描述
WML>WMLC
将.wml(Wireless Markup Lanuage)转化为一个压缩的格式。
WMLScript>WMLScriptC
将MIDlet应用程序为BlackBerry格式。
JAD>COD :XML>WBXML
将xml文件转化为下面的WAP二进制XML(.wbxml) MIME类型:application/vnd.wap.wbxml..
SVG >PME
将可svg(Scalable Vector Graphics)转化为BlackBerry设备支持的pme(Plazmic [...]
Confach发表于 April 23, 2008 8:41 pm | 留言 |文档
最新留言
- 高超:还有我按照http://www.52blackberry.com/thread-291671-1-1.html这个网站的方法实验过,还是不可以,不知道哪里做的不对
- 高超:说实话我没有看懂说的是什么,但是我很想像楼主那样使用SB的应用,我想楼主详细的告诉我应该怎么操作才能使用。谢谢 另:我没有使用移动的SB,那又点贵,不知道楼主的方法是不是需要移动推入,我使用的是blackberry的8520,支持WIFI 等待回复谢谢
- nio:ESS和MDS设置完毕之后,还是无法接收邮件,请较如下: MDS设置中的 Email.userId是写邮箱登陆用户名? Email.address需要修改么? Email.personal需要修改么? ESS设置中的 Email.personal跟MDS中的Email.personal有关系吗? Email.address跟MDS中的Email.address有关系吗? 以上两项应该设置成什么? ps:我用的是126的邮箱,用本地的outlook没有问题~
- 涂鸦:姜还是老的辣。
- Kirsten30MG:A lot of professors demand to examine the writing technique, hence, people have to choose dissertation service to buy free dissertation. In such way people show academic level. And as well you should get thesis.
