第三篇 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);
}
}