天天看点

blackberry平台J2ME编程指南(九)第三篇 blackberry上的J2ME编程1 开发包支持2 UI开发支持3 blackberry native API的混用

第三篇 blackberry上的J2ME编程

在对J2ME的编程有了些具体的认识,也了解到了主要的和一些关键的J2SE和J2ME的编制程序上的差别,我们就可以进入到BlackBerry上的J2ME编程的世界。

在这一部分,我们将会介绍在黑莓上进行Midlet编程开发的一个常规过程以及BlackBerry开发平台为midlet的开发提供了哪些便利和强有力的支持和补充。

1 开发包支持

BlackBerry平台提供了一个Eclipse插件,用来对midlet进行开发编程。对于希望使用BlackBerry进行midlet开发的人,只需要遵循如下步骤:

1.       下载并安装Eclipse 及BlackBerry Java Plug-in for Eclipse(最新的开发包在csdn的黑莓开发专区已经可以下载了)

本文使用的BlackBerry Java Plug-in for Eclipse版本为: v1.1 beta2 (下载地址: http://na.blackberry.com/eng/developers/devbetasoftware/javaplugin.jsp )

2. 根据向导,建立黑莓项目

3.安装EclipseME插件  --  Installing via the EclipseME Update site http://eclipseme.org/docs/installEclipseME.html#step2b  

4.修改项目配置,指定midlet属性。

然后,就可以体验黑莓上的midlet开发乐趣了。

关于blackberry插件开发midlet的详细指南,请参考如下链接:

http://blog.csdn.net/salvatore_zhang/archive/2010/05/06/5564186.aspx

2 UI开发支持

对于Midlet的UI开发,在BlackBerry平台上有多种解决方案:

可以使用MIDP的原生高级低级API,也就是LCDUI来进行开发。

使用BlackBerry的特有API组件,类似SUN的KJAVA组件来进行高级的UI开发

可以使用Widget技术来结合Midlet和WEB的UI

关于blackberry上的BlackBerry的UI开发的详细介绍,请参考如下文章:

http://blog.csdn.net/salvatore_zhang/archive/2010/05/06/5564433.aspx

3 blackberry native API的混用

在BlackBerry的MIdlet开发过程中,除了UI,其余的API都可以混用的,通过这种方式,能极大的弥补标准JSR对黑莓手机具体应用开发需求的缺陷。同时,结合黑莓原生API的使用,可以让Midlet应用本身更加切合BlackBerry系统的特征。

3.1 关于blackberry应用和midlet应用的集成

3.1.1 用RMS在MIDlet和BlackBerry之间共享数据

对于很多没有BlackBerry应用经验的开发者,或者对于很多现有的J2ME的系统,如果以最小的代价和BlackBerry应用交互,或者和BlackBerry应用集成,这是一个很好的方法。同时,这也是对老的J2ME应用和BlackBerry的新应用迁移和同步数据的一个好办法。既然BlackBerry开发对J2ME提供支持,所以RMS可以被用来作为这种解决的首选。

3.1.2  使用全局事件来进行应用交互

BlackBerry平台提供了事件模型,用来在不同的应用之间通信,在使用事件模型的时候需要注意如下事项:

·         任何应用程序都可以发布或者监听全局事件

·          通过响应全局事件可以在一个应用程序中执行一些本来应该在另一个应用中出现的动作

·         通过发送全局事件也可以在应用程序之间传递数据

3.1.3 使用RUNTIME Store来应用交互

相对于静态的RMS的繁琐配置和不灵活,BlackBerry提供的运行时存储(runtime store) 非常灵活和方便,它在平台即被提供了如下功能。

·         运行时存储提供一个中间区域让不用应用可以共享对象

·         通过数字签名的任何应用程序都可以访问运行时存储

3.2 Midlet和blackberry应用互操作    

通过BlackBerry平台提供的强大应用交互功能,应用开发者可以:

在你的Midlet应用中调用BlackBerry设备应用软件

在BlackBerry应用程序中调用Midlet

在设备应用中植入内容

在Midlet应用中植入BlackBerry系统UI

详细的内容,可以参考如下文章:

http://www.blackberry.com/developers/docs/5.0.0api/App-Integration-summary.html

3.3 对GPS的补充

GPS是MIDP设备上的几乎算标配的功能了。运行 BlackBerry® Device Software 5.0.0 或更高版本的 BlackBerry 设备支持 BlackBerry® extensions to JSR 179。

在MIDLet应用中,导入所需的类。

import net.rim.device.api.gps.*;创建类和构造函数。

public class handleGPS

{

    BlackBerryCriteria myCriteria;

    public handleGPS()

    {

    }

}在构造函数中,创建 try/catch 块。 在该块中,将 GPS 模式作为参数传递给构造函数,从而创建 BlackBerryCriteria 类的实例。

try

{

    myCriteria = new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST);

}

catch ( UnsupportedOperationException ex )

{

    return;

}在构造函数中,如果您指定的第一种 GPS 模式无法检索 GPS 修正,则调用 setFailloverMode() 来指定要使用的 GPS 故障转移模式。 成功检索第一个修正后,调用 setSubsequentMode() 来指定要使用的后续 GPS 模式。

myCriteria.setFailoverMode(GPSInfo.GPS_MODE_AUTONOMOUS, 3, 100);

myCriteria.setSubsequentMode(GPSInfo.GPS_MODE_AUTONOMOUS);要验证 GPS 模式是否受到支持,请调用 GPSInfo.isGPSModeAvailable() 并将 GPS 模式作为参数传递。 如果该模式受到支持,则调用 setMode() 来指定 GPS 模式。

public class handleGPS

{

    public handleGPS()

    {

        BlackBerryCriteria myCriteria = new BlackBerryCriteria();

        if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_ASSIST))

            myCriteria.setMode(GPSInfo.GPS_MODE_ASSIST);

        else if (GPSInfo.isGPSModeAvailable(GPSInfo.GPS_MODE_AUTONOMOUS))

            myCriteria.setMode(GPSInfo.GPS_MODE_AUTONOMOUS);

    }

}

继续阅读