专注于blackberry » 每周一技: ServiceBook初探

      专注于Blackberry

每周一技: ServiceBook初探

Taigoo 发表于 July 23, 2009 6:09 pm

版权信息 :严禁转载, 若想推荐或收藏,请用链接的形式.

网址:http://www.36sign.com/bb/web/development/week-tech/weektech-access-servicebook.html

关于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 via a CID of 'CMIME'
             if( srs[index].getCid().equalsIgnoreCase( "CMIME" )) {
                //add your code here
               }
         }
      }

下面讲讲应用。

已经有很多人提出如何列出Blackberry机器上绑定的邮箱.其实这个问题非常简单。可以将上面的代码改为:

 public void listBoundEmails()
     {
         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 via a CID of 'CMIME'
             if( srs[index].getCid().equalsIgnoreCase( "CMIME" )) {
                 ServiceConfiguration sc = new ServiceConfiguration(srs[index]);
                 logger.log("The SB name configuring is:"+sc.getName()+"/"+sc.getEmailAddress());
               }
         }
      }

代码不解释了,太简单了。知道了email地址,你就可以指定一个缺省的邮件作为发送地址。这是另外一个话题,不再这里赘述。

综合上述,所以很多问题不是不懂,而是没有仔细去看文档。

还有其他应用吗?当然有,例如:

  1. 如何和Blackberry邮件系统集成
  2. 如何和BES关联
  3. 如何让浏览器上网
  4. 如何设置网络的APN
  5. 如何通过WIFI访问网络
  6. 如何提供LBS服务
  7. 如何设置MMS服务
  8. 如何设置PUSH

以上这些应用需要Service Book,但是目前RIM从来没有公开过其格式。即使有备份的ipd文件,但是ipd文件格式往往都是网友crack的,做出来的软件也不太令人满意,希望RIM能早日发布这些格式吧,这样对Blackberry的推动是非常有好处的。

以上仅仅是我任意列出的应用,如果您对以上哪个感兴趣,可以留言,如果有很多网友想知道某个具体问题,我会另写一些文章解释之。

相关文章:

  1. SB应用(1) HTTP连接
  2. 每周一技:从BES服务器上lookup联系人
  3. BlackBerry 应用程序开发者指南 第二卷:高级–第10章 访问安装和配置信息
  4. 每周一技:日志
  5. Blackberry上网问题解决方案



7 个评论 »

1.   cilyce 发表于 October 17,2009 21:30:09

这里有一点需要注意,特别是使用http和socket连接,如果你的终端已经激活,必须指定deviceside=true这个参数,因为调用Connector.open()这个方法时默认使用deviceside=false,也就是说你所打开的连接默认使用ippp记录进行连接,有可能导致你的客户端不能连接到指定的url,比如如飞信、qq。

2.   cilyce 发表于 October 17,2009 21:41:29

更正上面的一个错误,如果客户端的网络连接是通过bes通道,可以不指定deviceside=false,但是一定不能是deviceside=true

3.   高超 发表于 March 7,2010 22:15:54

说实话我没有看懂说的是什么,但是我很想像楼主那样使用SB的应用,我想楼主详细的告诉我应该怎么操作才能使用。谢谢

另:我没有使用移动的SB,那又点贵,不知道楼主的方法是不是需要移动推入,我使用的是blackberry的8520,支持WIFI

等待回复谢谢

4.   高超 发表于 March 7,2010 22:17:47

还有我按照http://www.52blackberry.com/thread-291671-1-1.html这个网站的方法实验过,还是不可以,不知道哪里做的不对

5.   gdmzyejian 发表于 April 19,2011 18:14:41

请问如何确定软件的cid呢?我现在想用弄个sb,把黑莓上的ucweb置顶为走wap,该怎么弄呢?站长能不能帮我解答一下?

6.   黑莓手机BlackBerry Service Book(简称SB)应用详解指南教程 | iMobile365 发表于 August 6,2011 04:21:58

[...] 另附SB开发文档:猛击这里查看 [...]

7.   黑莓手机BlackBerry Service Book(简称SB)应用详解指南教程 - iMobile365 发表于 August 15,2011 01:56:36

[...] 另附SB开发文档:猛击这里查看 [...]

本文评论的RSS · TrackBack URI

发表评论