附錄 A |
|
本附錄描述 Sun JavaTM Wireless Toolkit for CLDC 所附帶的應用程式示範。
Sun JavaTM Wireless Toolkit for CLDC 包含一些示範應用程式,以特別介紹模擬器所支援的一些技術與 API。這些示範的目的是要讓您大致瞭解一下模擬器的一些 API 功能與整個工具組的增強功能。
表格 A-1 列出此發行版本包含的所有示範應用程式。
大部分示範應用程式的執行方式都很簡單。 第 A.2 節 一般指示包含執行大部分示範的說明。表格 A-1 中列出了包含其他文件的示範的連結。如果沒有連結,代表這個示範很簡單 (或有自己的說明),一般說明已足夠。
每個示範應用程式的原始碼位於 toolkit/apps 目錄中。子目錄內包含專案,而且每個專案各有一個內含 Java 程式設計語言原始碼的 src 目錄。例如,在 Windows 中,如果工具組安裝在 $$$C:\WTK2.5.2 中,則 WMADemo 中 SMS 寄件者 MIDlet (example.sms.SMSSend) 的原始碼就位於 $$$C:\WTK2.5.2\apps\WMADemo\src\example\sms\SMSSend.java 中。如第 1.1.2 節 工作目錄 檔案中所討論,當您開啟某個專案時會將其複製到您的 workdir/apps 目錄。
大部分示範應用程式可在執行後無需特殊準備便可啟動。但是,某些示範需要變更工具組偏好或設定。這一節描述一般程序。
第一個步驟是執行工具組。若要執行此動作,請移至 Microsoft Windows 的 [開始] 功能表,選擇 [開始] > [所有程式] > [Sun Java Wireless Toolkit 2.5.2 for CLDC] > [Wireless Toolkit 2.5.2]。將顯示使用者介面,如圖 A-1 中所示。
按一下 [開啟專案] 按鈕,開啟示範應用程式。會顯示所有可用應用程式的清單。如第 1.1.2 節 工作目錄檔案中所討論,安裝目錄中的專案為斜體,而您工作目錄中的專案以粗體顯示 (圖1-1 )。當您開啟安裝目錄中的某個專案時,會在您的工作目錄中建立一個副本,然後開啟。
開啟應用程式後,您可以按工具列上的 [執行] 按鈕;或者如果需要在模擬器上安裝,則請按一下 [專案] > [經由 OTA 執行]。
開啟裝置模擬器視窗,顯示執行中的示範應用程式。如果有 MIDlet 的功能表,請使用導覽箭頭選擇一個項目,然後選擇 [選取]。示範進行時,您可能需要按下左側或右側螢幕下的軟鍵之一。使用軟鍵可以安裝或啟動應用程式、開啟功能表、結束或執行某些其他動作。某些範例包含這些指令。
有些示範需要特定設定與指示。例如,如果某個範例使用 Web 服務並且您在防火牆後方,則您必須配置模擬器的代理伺服器設定,否則示範將失敗:
此 MIDlet 套裝軟體示範了 JSR 234 Advanced Multimedia Supplements (AMMS) 的功能。它包含以下 MIDlet:
此應用程式包含示範如何使用 JSR 82 藍芽 API 的 MIDlet。
BluetoothDemo 專案展示如何在兩個使用藍芽的裝置之間傳輸影像。您必須執行兩個模擬器實例,才能瞭解此示範的運作方式。
在第一個模擬器中,啟動 [藍芽示範],然後選擇 [伺服器]。模擬器會詢問您是否允許藍芽連線。選擇「是」。伺服器會啟動,並顯示影像清單。一開始,藍芽網路上沒有任何可用的影像。若要使影像可用,請選取這些影像,然後從功能表選擇 [發佈影像] (或鍵入或按一下 1)。圖示顏色會從紫色變為綠色,表示已經發佈。
在第二個模擬器上,啟動 [藍芽示範],然後選取 [用戶端]。MIDlet 會告訴您,已準備好搜尋影像。按一下 [尋找] 軟式按鈕。MIDlet 會尋找其他模擬器,並從中取得影像清單。從清單中選取一個影像,並選擇 [載入]。模擬器會詢問您是否允許連線。選擇「是」。
CHAPIDemo 是一個內容瀏覽器 (請參閱 JSR 211), 裡面保留一個我的最愛清單,並可讓您選取與檢視各種內容。
本示範使用內容處理器註冊表,因此您使用 [執行] 按鈕時無法看到其所有功能。請改用 [專案] > [經由 OTA 執行] 將應用程式安裝至模擬器。如果不知道如何執行,請查閱第 2.3.2 節 安裝。
安裝完 CHAPIDemo 後,會在 [文字檢視器] 中顯示為應用程式清單。它是純文字的 MIDlet 內容處理器。選取 [文字檢視器],然後從軟式按鈕功能表中選擇 [啟動]。會顯示我的最愛連結清單。
使用導覽鍵高亮度顯示 CHAPIDemo,然後按下模擬器上的 [選取]。應用程式會詢問是否可以使用通話時間。按下 [是] 軟式按鈕。會顯示各種類型內容的清單 (圖 A-6)。
嘗試選取一個 Duke.png。使用箭頭高亮度顯示該連結,然後按下 [選取] 以檢視此檔案。使用 CHAPI 啟動 ImageViewer MIDlet,並會顯示內容。
其他類型的內容需要另一個內容處理器 MIDlet 套裝軟體︰MediaHandler。若要從 CHAPIDemo 安裝此套裝軟體,請選取 MediaHandler.jad 連結 (圖 A-6 中所示清單中的第一個項目)。會呼叫 AMS,並引導您完成整個安裝。
安裝完 MIDlet 套裝軟體之後,您可以檢視 [文字檢視器] 中列出的其他類型內容。例如,選取 http:video/test-mpeg.mpg 以查看一系列影像 (包括圖 A-8 中顯示的影像)。
圖 A-8 使用 MediaHandler 檢視 MPEG 電影
若要檢視 TextViewer 和 ImageViewer MIDlet 的內容處理器設定,請按一下 [設定],然後按一下 [內容處理器] 圖示。您可能還希望檢查 MediaHandler 專案。
CityGuide 會示範如何使用位置 API (JSR 179)。它可在市區地圖上顯示行人的目前位置。行人會在市區內移動,行人接近地標時,地標也會高亮度顯示並註明。在此示範中,我們透過名稱為 citywalk.xml (事件檔案) 的 XML 程序檔取得行人的位置,該程序檔可提交裝置位置資訊。請參閱第 13 章以獲得完整說明。
由於位置提示會經常出現,因此最佳方法是以製造商 (可信任) 模式執行此示範,如第 6.2.1 節 MSA 保護網域中的解釋。在使用者介面中,選取 [編輯] > [偏好],然後選取 [安全]。為安全網域選擇 [製造商]。
開啟並執行 CityGuide 專案。在模擬器中,啟動 CityGuide MIDlet。按 [下一步] 以檢視地圖頁面。
從模擬器視窗功能表中選擇 [MIDlet] > [外部事件]。在 [位置] 標籤上,按一下 [瀏覽] 按鈕。選取 workdir\apps\CityGuide\citywalk.xml 中的以下事件檔案。
視窗底部的播放器按鈕現在正在使用中。請參閱圖 13-1。按下綠色播放按鈕 (向右指的三角形) 以執行程序檔。
顯示螢幕出現四種類型的地標: 餐廳、博物館、商店和電影院。若要調整地標顯示,請開啟軟式功能表並選擇 [設定] 指令。請參閱圖 A-10。使用導覽鍵高亮度顯示某個種類,然後使用 [選取] 核取或取消核取某個項目。
當您在某個地標 (如地圖上高亮度顯示的地標所示) 附近時,請開啟軟式功能表並選擇 [詳細資訊] 指令,以查看更多資訊。如需有關位置程序檔的更多資訊,請參閱 第 13 章。
此應用程式會顯示一個大塊橫向矩形,跨越整個螢幕寬度。下面有十個小塊縱向矩形,橫跨整個螢幕。最後有三條水平色棒,分別顯示藍、綠和紅色 (RGB) 的值。系統會根據第一個功能表的選取,以十進位 (0-255) 或十六進制 (00-ff) 數字表示值。
此 MIDlet 會顯示特性值。例如,請參考圖 A-12:
此測試應用程式使用 HTTP 連線請求網頁。請求是透過 HTTP 協定 GET 或 POST 方法發佈的。如果已使用 HEAD 方法,則會從請求讀取 HEAD 特性。
啟動 Http MIDlet。依預設,MIDlet 嘗試聯絡 http://www.yahoo.com。若要進行測試,請選擇 [功能表] 軟鍵並選擇 1、2 或 3 測試所選 URL。
[Http 測試] 會傳回自己能取得的資訊。如果資訊填滿螢幕,請使用向下箭頭捲動到結尾。資訊量取決於請求類型和此頁面提供的 META 資訊量。若要提供內文資訊或內容,此頁面必須依 RFC 2616 中的描述宣告 CONTENT-LENGTH。
此 MIDlet 展示各種可用字型: Proportional、Regular、Regular Italic、Bold Plain 和 Bold Italic。從功能表中選擇 1 或 2,以在系統字型 (細明體) 和固定間距字型間切換。
正如 Http 示範,此範例使用 HTTP 連線獲得資訊。使用與第 A.7.3 節 Http 相同的準備步驟。
依預設,畫面會在頂部顯示空的快訊列。快訊下方的功能表清單會顯示四個應用程式: 「Stock Tracker (股票追蹤器)」、「What If?」、 「Alerts (警報)」和「Settings (設定)」。使用前三個應用程式之前,您必須增加股票代號。
若要使用此應用程式的功能,您必須為應用程式提供一些股票代號才能使其運作。
螢幕會提示您輸入股票代號。鍵入 SUNW 並選取 [完成] 軟鍵。您增加的股票和目前價格會顯示在快訊中。增加更多代號,例如 IBM 和 HPQ。
依預設,更新間隔為 15 分鐘。選取 [更新] 以變更時間間隔。使用導覽箭頭選取[連續]、[15 分鐘]、[30 分鐘]、[1 小時] 或 [3 小時] 中的一個選項。選取 [完成] 軟鍵。
選取 [移除股票]。可以看到您已增加的股票清單。使用導覽鍵選取一個或多個要移除的股票。選擇 [完成] 軟鍵。
股票追蹤器可顯示您已增加的股票及其現值清單。股票追蹤器可顯示有關已選取股票的其他資訊,例如,最後成交價和最高價與最低價。
What If? 是一個應用程式,會詢問您擁有股票的原始購買價格和股數。它可根據目前價格計算損益。
選取 [股票]。螢幕會顯示提示 [股票到達以下價格時發出警報]。輸入一個整數。
警報位於 [目前的警報] 清單中。若要移除某個警報,請按下 [移除] 並選取該警報。選擇 [完成] 軟鍵。
達到您指定的價格時,您會聽到鈴聲並收到一則訊息。例如,Symbol 已達到您的價格點 $value 並且目前正以 $current_value 價格成交。此警報觸發之後,便會從 [目前的警報] 清單中消失。
示範線上購票拍賣應用程式的可能運作方式。主螢幕會在頂部顯示購票快訊。依預設,[選擇樂團] 欄位會顯示 [艾拉妮絲莫莉塞特]。
若要選擇樂團,反白顯示樂團名稱並按下 [選取]。使用向下箭頭反白顯示不同的樂團 (例如「魔比」),然後按下 [選取]。會顯示可用的拍賣。
若要投標,請選取 [功能表] 軟鍵並選擇 [2]。使用方向鍵在欄位間移動。填妥每個欄位。選取 [下一步] 軟鍵。應用程式會要求您確認您的投標。使用方向鍵反白顯示 [提交],然後按下 [選取]。您會收到一個確認碼。按一下 [樂團] 以返回到歡迎頁面。
若要設定警報,請選取 [功能表] 軟鍵並選擇 3。使用導覽箭頭移動到此欄位並鍵入一個高於目前投標價的值。選取 [儲存] 軟鍵。會返回到歡迎頁面。只要以超過警報值的價格投標,就會觸發警報。您的設定決定了應用程式檢查變更的頻率,因此可能要過幾分鐘才能聽到警報。
若要加入樂團,請選取 [功能表] 軟鍵並選擇 4。鍵入樂團名稱或用逗號隔開的名稱清單。選擇 [儲存] 軟鍵。確認後便會返回到歡迎頁面。增加的樂團顯示在 [選擇樂團] 下拉式清單中。
備註 - 這只是個示範。若要完整描述樂團,您必須編輯檔案 workdir\apps\Demos\src\example\auction\NewTicketAuction.java。 |
若要移除樂團,請選取 [功能表] 軟鍵並選擇 5。導覽至某個樂團,然後選擇 [選取] 以標記核取方塊。您可以選擇多個樂團。選擇 [儲存] 軟鍵。
若要顯示快訊顯示、更新、警報音量和日期的目前設定,請選取 [功能表] 軟鍵並選擇 6。如果需要,請使用方向鍵和選取鍵變更這些值。選擇 [儲存] 軟鍵。
此 MIDlet 一開始是一個球在螢幕中移動。使用向上、向下箭頭提高或降低球速 (fps)。使用向左、向右鍵增加或減少球數。
此應用程式包含三個 MIDlet,以顯示模擬器的 JSR 184 (Mobile 3D Graphics API) 支援。
Life3D 以三度空間實作流行的生命之旅 (Game of Life)。活的細胞以立方體表示。每個細胞可能有 26 個鄰居 (包含對角)。在動畫的每個步驟中,少於四個鄰居的細胞會因為太寂寞而死掉,而多於五個鄰居的細胞則因為太擁擠而死掉。剛好四個鄰居的空細胞將會變成新的活細胞。
使用表格 A-2 中的小鍵盤按鈕控制遊戲。
本範例的原始碼有非常完善的說明記錄。請參閱 toolkit\apps\Demo3D\src\com\superscape\m3g\wtksamples\life3d\Life3D.java。
PogoRoo 展示一隻袋鼠用彈簧單高蹻上、下彈跳。若要掌控袋鼠,請使用方向鍵。向上可以往前跳,向下往後跳,向左、向右則可以改變方向。您必須按住按鍵才能看到效果。
retainedmode MIDlet 會播放一個場景的檔案,顯示一個永不疲倦的滑板選手,無止盡地繞圈圈。
GoSIP 是一個聊天應用程式,以 SIP (JSR 180) 設定使用 SIP 代理伺服器和代理登錄的通訊。
由執行 SIP 伺服器開始。選擇 [檔案] > [公用程式]。選取 [啟動 SIP 伺服器],然後按下 [啟動]。會顯示 SIP 代理伺服器視窗。按一下 [啟動] 以執行此伺服器。
在第一個模擬器中,啟動 Sippy A。系統提示您輸入代理主機時,請輸入您的本地機器名稱或 IP 位址並選擇 [下一步],然後選擇 [註冊]。SIP 伺服器視窗會顯示模擬器的 SIP 訊息。在已註冊使用者的清單中會顯示 [Sippy A]。模擬器會建議您邀請您的朋友 Sippy B 交談。但現在還不要執行。
在第二個模擬器中,啟動 Sippy B。和之前一樣,輸入 SIP 代理伺服器的位址、選擇 [下一步],然後選擇 [註冊]。[Sippy B] 使用者會顯示在 SIP 伺服器視窗中。
在第一個模擬器中選擇 [邀請]。第二個模擬器會指示其正在響鈴。選擇 [接聽] 開始聊天。兩個模擬器現在均顯示 [聊天中] 螢幕。您可以使用 [傳送] 指令來回傳送訊息。
此 MIDlet 套裝軟體展示 JSR 238 Mobile Internationalization API。MIDlets String Comparator 和 Formatter 展示如何排序字串以及針對不同的語言環境適當地顯示數字。第三個 MIDlet (MicroLexicon) 是一個小型片語翻譯程式,如果您需要在布拉格、赫茲利雅、北京、米蘭或幾個其他地方點杯啤酒,便可派上用場。
備註 - Sun JavaTM Wireless Toolkit for CLDC 的預設字型不支援中文和日文。若要使用這些語言,請在執行此示範之前執行以下步驟:
|
若要執行 MIDlet,請使用 [選取] 反白顯示此 MIDlet,然後使用右下按鈕啟動此 MIDlet。
String Comparator MIDlet 可示範每個語言環境的字串 (城市名稱) 排序之區別。啟動 MIDlet。使用右下按鈕檢視功能表。按一下或鍵入 2 以選取 [排序 - 預設],清單即會按字母順序排序。按一下或鍵入 3 以選取 [排序 - 斯洛伐克語]。不管頂部有沒有標記,都很容易看出以字母 Z 開頭的城市差別。按一下 [結束] 以返回到 MIDlet 的清單。
第二個 MIDlet (Formatter) 只是針對不同語言環境的格式顯示時間和數字。按一下 [下一步] 以檢視所有四個螢幕。按一下 [結束] 以返回到 MIDlet 的清單。
最後一個 MIDlet (MicroLexicon) 將片語從一種語言翻譯為另一種語言。若要從清單中選取目標語言,請使用導覽箭頭反白顯示 [選擇語言]。按一下 [選取] 以檢視語言下拉清單。使用導覽箭頭選擇一種語言 (請參考圖 A-17),然後按一下 [選取]。
MicroLexicon 顯示片語的清單。反白顯示一個片語,然後按下模擬器上的 [選取] 按鈕。您可以看到目標語言的旗標和已翻譯的片語。
若要變更來源語言,請選擇 [編輯] > [偏好]。按一下 [國際化] 標籤,然後輸入有效的語言環境字串。下次執行模擬器和 MicroLexicon 時,如果支援,指示文字就會以指定的語言環境顯示。例如,cs-CZ 就可行。
MicroLexicon 採用 MIDlet 資源。若要瞭解如何使用工具組來本地化應用程式,請選擇 [專案] > [國際化資源管理員]。會顯示所有資源,包括文字和影像 (由 MicroLexicon 使用)。您可以編輯資源,然後再次執行 MicroLexicon,看看有什麼變化。您無需再次生成應用程式,因為資源已經在執行階段載入。
$$$這些資源本身儲存於 workdir\apps\i18nDemo\res\global。
JBricks 是一個遊戲,示範了 JSR 229 Payment API 的使用。此遊戲類似 Breakout 或 Arkanoid (打磚塊)。在 JBricks 中,您可以購買生命或新的遊戲等級。Payment API 在背景處理細節。
若要使用 JBricks 的支付款項功能,請使用 [專案] > [經由 OTA 執行] 將 JBricks 安裝至模擬器。如果不知道如何執行,請查閱第 2.3.2 節 安裝。
若要查看 JBricks 如何使用 Payment API,請從遊戲主功能表中選擇 [購買生命] 或 [購買等級]。接著選擇要購買一條生命,還是以優惠價格一次購買三條生命。下一個螢幕讓您選擇支付款項類型。
使用導覽箭頭選取以 [透過以下方式支付] 開頭的行。按一下 [選取] 按鈕以查看下拉式功能表中可能的信用卡介面。使用導覽箭頭選取 [VISA 介面],然後按一下 [選取]。按一下右下方的 [是] 以繼續進行。
然後,您便可以輸入信用卡資訊。使用任一有效的 VISA 號碼 (例如,4111111111111111) 和有效的過期日期。
若要檢視目前模擬器實例的作業事件,請選擇 [MIDlet] > [外部事件],然後按一下[支付款項作業事件] 標籤。會顯示此特定模擬器實例的作業事件。
此外,您可以檢視通過工具組的支付款項系統的所有作業事件。選擇 [檔案] > [公用程式],然後選取 [支付款項主控台]。主控台中的作業事件如下:
JSR172Demo 展示如何從 MIDlet 存取 Web 服務。Web 服務已經在網際網路伺服器上執行。如果您在防火牆後方,您必須配置模擬器的代理伺服器設定。選擇 [編輯] > [偏好],然後選取 [網路配置]。填入代理伺服器位址檔案以及連接埠號。生成並執行範例。
JSR172Demo 包含一個 MIDlet,名稱為 Server Script。請啟動它,並依照提示執行。您可以瀏覽模擬的新聞提要,所有這些資料都是從 Web 服務擷取下來的。
MobileMediaAPI 應用程式包含四個展示工具組多媒體功能的 MIDlet。這一節描述這些 MIDlet,並包含從您的應用程式使用多媒體的其他資訊。
Simple Tones 範例示範如何使用互動合成鈴聲。選取一個範例,然後按一下右下方的 [播放]。
Simple Player 應用程式會示範模擬器的音效與視訊功能範圍。它包含各種不同格式的範例檔,而且可以從模擬器的永久性儲存裝置或從 HTTP URL 播放檔案。
播放器部分使用通用的 javax.microedition.media.Player 介面。播放器會顯示長度、媒體時間和執行媒體檔的控制項。如果檔案提供中介資料,此播放器可讓您檢視這些資訊,例如作者與標題。對於 MIDI 檔案,如果檔案提供卡拉 OK 文字,則播放時螢幕上會顯示文字。如果提供圖形使用者介面控制項,也可在顯示螢幕上進行檢視。若要存取這些控制項,請在 [Simple Player] 中選取其中一個媒體範例,然後按下 [功能表] 按鈕,以檢視並選取需要的指令。
選取 [Simple Player],然後按一下 [啟動]。示範包含下列媒體範例:
此外,Simple Player 會剖析鈴聲文字傳輸語言 (RTTTL) 格式的鈴聲。如需 RTTTL 的詳細資訊,請參閱 http://www.convertyourtone.com/rtttl.html。
[Simple Player] 包含控制媒體播放的通用指令集。這些指令列在 [Simple Player] 功能表上,而且有些指令有相關的小鍵盤按鈕。下表描述這些指令。
錄製音效播放。在執行模擬器的目錄中建立一個檔案,內含錄製的音效。如果不指定檔案名稱,則建立的檔案名稱為 recording.wav。此指令會切換成 [停止錄音]。 |
||
在播放完成後,立即播放音效檔。執行一次 [迴圈模式] 就會播放一次音效檔。按第二次會將檔案播放三次。按第三次則會一再重複播放檔案。按第四次則恢復單次播放。 |
||
依 [Simple Player] 所播放的媒體類型而定,有些指令可能不適用。此外,有些指令可以用小鍵盤按鈕呼叫。下表描述可用的指令、其小鍵盤對等按鍵和 MMAPI 中相關的類別。
請注意,Simple Player 應用程式本身提供一份簡短的指令清單,和對應的小鍵盤按鈕。只要從功能表選擇 [快速說明] 指令即可取得。
Video 應用程式演示模擬器如何播放 GIF 動畫檔與擷取視訊。在配備相機的實際裝置上,視訊擷取可用來告訴使用者,透過相機所能看到的內容。
使用 Form Item 或 Canvas 即可實作 GIF 動畫與視訊擷取。Video 示範包含所有可能性。Animated GIF - Form [jar] 會以 Form Item 方式顯示 GIF 動畫。表單也包含有關播放的一些資訊,包括目前時間。選擇 [快照] 指令可拍下執行中動畫的快照。快照將存放於跟在 GIF 動畫後面的表單中。
MPEG1 應用程式從 Web 獲得 MPEG,因此如果您在防火牆後方,則必須配置模擬器的代理伺服器設定。
選擇 [編輯] > [偏好],然後選取 [網路配置]。核取 [使用代理伺服器]。填入代理伺服器位址欄位以及連接埠號。對於此示範,請選取 [HTTP/1.0]。
當您播放此示範時,必須等幾秒鐘讓 WTK 獲得資料。MPEG1 示範分別與 Video Capture - Form 和 Video Capture - Canvas 具有相同的運作方式。
此 MIDlet 用於示範暫停的 MIDlet 未停止執行中的播放器時,Sun JavaTM Wireless Toolkit for CLDC 要如何向您發出警告。啟動 MIDlet 之後,請選擇 [播放] 指令以開始播放某些音效。螢幕會顯示狀態「正常」或「不正常」。
從模擬器視窗的功能表中選擇 [MIDlet] > [暫停]。就如預期的,MIDlet 會暫停且工具組主控台上不會顯示訊息。從模擬器視窗的功能表中選擇 [MIDlet] > [重新繼續]。
接著選擇 [不正常] 指令。再次暫停 MIDlet。在工具組主控台中,您會看到以下警告: An active media (subtype Player) resource was detected while the MIDlet is paused. (MIDlet 處於暫停狀態時偵測到使用中的媒體 [子類型播放器] 資源。) Well-behaved MIDlets release their resources in pauseApp(). (正常 MIDlet 釋放在 pauseApp() 中的資源。)
MobileMediaAPI 應用程式有下列屬性,是您在專案設定對話方塊的 [用戶定義的] 標籤中可以修改的項目:
此示範有兩個 MIDlet: Socket Demo 和 Datagram Demo。每個示範都需要執行兩個模擬器實例,以便模擬伺服器和用戶端的關係。
執行兩個模擬器實例。一個作為通訊端伺服器,另一個作為通訊端用戶端。
在第一個模擬器中,啟動應用程式,然後選取對等的伺服器。選擇 [啟動]。此模擬器說明此示範要透過網路傳送和接收資料,並詢問「Is it OK to use network? (是否可以使用網路?)」 選擇「是」。通訊端伺服器會顯示螢幕,表示正在等待連線。
在第二個模擬器中啟動應用程式、選取對等的用戶端,然後選擇 [啟動]。此模擬器說明此示範要透過網路傳送和接收資料,並詢問「Is it OK to use network? (是否可以使用網路?)」 選擇「是」。通訊端用戶端會顯示螢幕,表示已連接到伺服器。使用下導覽箭頭反白顯示 [傳送] 方塊。在 [傳送] 方塊中鍵入訊息,然後選擇 [傳送] 軟鍵。
例如在用戶端的 [傳送] 方塊中鍵入 [Hello Server] (請參考圖 A-22)。選擇 [傳送] 軟鍵。傳送期間模擬器會啟動藍燈。
在執行通訊端伺服器的模擬器上,狀態為: Message received - Hello Server (訊息已收到 - 您好,伺服器)。您可以使用向下箭頭移動到 [傳送] 方塊並鍵入回覆。例如,Hello Client, I heard you (您好,用戶端,我已收到您的訊息)。選取 [傳送]。請參閱圖 A-23。
回到通訊端用戶端,狀態顯示伺服器傳送的訊息。在傳送新訊息之前,[傳送] 方塊內都會包含您之前傳送的訊息。
執行兩個模擬器實例。一個作為資料封包伺服器,另一個作為資料封包用戶端。
在第一個模擬器中,啟動 Datagram Demo,然後選取對等的伺服器。選擇 [啟動]。此模擬器說明此示範要透過網路傳送和接收資料,並詢問「Is it OK to use network? (是否可以使用網路?)」 選擇「是」。最初,資料封包伺服器狀態為 [等待連線],並且 [傳送] 為空。
在第二個模擬器中,啟動 Datagram Demo,選取對等的用戶端,然後選擇 [啟動]。此模擬器說明此示範要透過網路傳送和接收資料,並詢問「Is it OK to use network? (是否可以使用網路?)」 選擇「是」。資料封包用戶端的狀態為: 已連線到伺服器。使用下導覽箭頭反白顯示 [傳送] 方塊。在 [傳送] 方塊中鍵入訊息,然後選擇 [傳送] 軟鍵。例如,鍵入 [Hello datagram server (您好,資料封包伺服器)]。
在執行資料封包伺服器的模擬器上,狀態顯示為: Message received - Hello datagram server (訊息已收到 - 您好,資料封包伺服器)。您可以使用下箭頭移動到 [傳送] 方塊並鍵入對用戶端的回覆。
資料封包用戶端的狀態欄位顯示已從伺服器收到的訊息。[傳送] 方塊包含您傳送的最後一條訊息。
此應用程式會展示如何使用 OBEX API,在模擬器實例之間傳輸影像檔。此示範會展示透過模擬的紅外線連線使用 OBEX 的方式。
執行兩個模擬器實例。一個偵聽內送的連線,另一個則嘗試傳送影像。在第一個模擬器中,啟動應用程式後選擇 [Obex 示範],然後選擇 [接收影像]。此模擬器說明 OBEX 連線允許其他裝置與您通話,並詢問「Is it OK to make the connection? (是否可以建立連線?)」 選擇「是」。偵聽程式模擬器會顯示螢幕,指出它正在等待內送的連線。
在第二個模擬器中 (寄件者),啟動 [Obex 示範],然後選擇 [傳送影像]。就會顯示影像清單。選取一個影像,並選擇 [傳送]。此模擬器說明示範要建立外送用戶端連線,並會詢問是否允許。選擇「是」。「傳送影像」公用程式會上傳影像。
在偵聽模擬器中,公用程式會顯示有關內送影像的資訊,並詢問「Would you like to receive it? (您是否願意接收?)」 請參閱圖 A-24。
選擇「是」。選取的影像就會透過模擬的紅外線連結傳輸,顯示在第一個模擬器上。請參閱圖 A-25。
PDAPDemo 展示如何使用 PIM 與 FileConnection API (這是 JSR 75 規格的一部分)。
如果您尚未完成此作業,若要執行檔案瀏覽器,將需要為 MIDlet 提供適當的安全授權。選擇 [編輯] > [偏好]。按一下 [安全性] 標籤。將 [安全網域] 變更為最大值,再按下 [確定]。
接著開啟並執行 PDAPDemo 專案。啟動 FileBrowser MIDlet。您會看到目錄清單,並瀏覽可用的目錄和檔案。預設狀況下有一個目錄 root1。
使用示範中的指令,您可以檢視檔案,或查看檔案特性。請嘗試選取檔案,並從功能表選擇 [特性] 或 [檢視]。
實際的檔案位於 workdir\appdb\DefaultColorPhone\filesystem (假設您使用的是 DefaultColorPhone 模擬器面板)。您可以隨意增加檔案與根目錄,就可以在 JSR 75 File API 中看到這些項目。如需詳細資訊,請參閱第 10 章。
JSR75 PIM API 範例示範如何存取個人資訊,例如連絡人清單、行事曆與待辦事項清單。啟動範例之後,從主功能表選擇一種清單。
在這個應用程式範例中,每種清單的運作方式都一樣,而且每種清單類型都只包含一個清單。例如,如果選擇 [連絡人清單],就只有一個 Contacts 連絡人清單。[事件清單] 只包含一個名為 Events 的清單,而 [待辦清單] 只包含一個名為 To do 的清單。
選取清單類型,並選擇特定清單後,便可以檢視清單中的所有項目。如果這是您第一次執行本範例,清單可能是空的。
若要增加項目,請從功能表選擇 [新增]。應用程式會提示您輸入項目的格式化的名稱。您可以用功能表中的 [增加欄位] 將更多其他資料欄位增加到此項目。就會顯示欄位名稱清單。挑選一個欄位,然後輸入新欄位的值。
您可以選擇 [上一步] 指令,回到清單。剛建立的項目就會顯示在清單中。
您建立的項目會以標準 vCard 或 vCalendar 格式儲存在 workdir\appdb\skin\pim 目錄中。如需詳細資訊,請參閱第 10 章。
PIM API 允許匯出標準格式的連絡人、行事曆與待辦事項。確實的格式須視清單類型而定。當您檢視任何清單中的項目時,功能表會包含用於檢視匯出項目的指令。
例如,當您檢視連絡人清單項目時,功能表會包含 [顯示 vCard]。當您選擇此指令時,匯出的項目就會顯示在螢幕上。行事曆項目與待辦事項都會匯出為 vCalendar。
SATSADemos 包含 SATSA (Security and Trust Services API) 的示範。大部分示範顯示如何與智慧卡通訊。模擬器可使用通訊端協定與模擬的智慧卡通訊。智慧卡模擬器 (cref) 包含在工具組中。如需詳細資訊,請參閱第 14 章。
以下各節中包含此示範的每個功能表選擇的說明。對於每個示範,在啟動模擬器之前一定要執行以下作業:
此 MIDlet 示範使用應用程式協定資料單元 (APDU;小的資料封包) 與智慧卡進行通訊。APDUMIDlet 需要找到兩個模擬的智慧卡。您可以使用 cref (Java Card Development Kit 的一部分) 執行智慧卡模擬器。
Mohair 應用程式包含預建立的記憶體影像,您可以將這些影像與 cref 配合使用。這些記憶體影像包含與 Mohair 相互作用的 Java Card 應用程式。這些記憶體影像位於 Mohair 專案的根目錄中。
在 Windows 上,依照如下方式啟動 cref 的兩個實例,分別對應每個模擬卡片槽 (假設目前的目錄為工具組安裝目錄):
start bin\cref -p 9025 -i apps\SATSADemos\demo2.eeprom start bin\cref -p 9026 -i apps\SATSADemos\demo2.eeprom
toolkit/bin/cref -p 9025 -i apps/SATSADemos/demo2.eeprom toolkit/bin/cref -p 9026 -i apps/SATSADemos/demo2.eeprom
請注意,連接埠號 (此範例中的 9025 和 9026) 必須符合您在 SATSA 偏好中指定的連接埠號,如第 14 章所述。而且,確定使用 demo2.eeprom 的正確路徑。
SATMIDlet 示範智慧卡通訊與 APDU 通訊間的細微差異。
若要設定模擬的智慧卡,請使用 cref,與您對 APDUMIDlet執行的作業非常相像。此次您不必指定連接埠號,而且記憶體影像不同:
執行智慧卡模擬器時,您可以執行 SATMIDlet 以與智慧卡應用程式進行通訊。
CryptoMIDlet 示範 SATSA 的一般加密功能。它不會以任何方式與智慧卡互動。
MohairMIDlet 具有兩項功能。第一,尋找插槽、顯示所有可用的卡片槽。每個插槽均有一個數字,後跟「C」或「H」,分別表示冷插拔或熱插拔插槽。檢視插槽之後,請選取 [上一步] 以返回第一個螢幕。
MohairMIDlet 的第二部分 (SATSA-PKI 簽署測試) 使用智慧卡產生數位簽名。與之前的示範相同,您需要使用正確的記憶體影像執行 cref,才能準備從 MohairMIDlet 連線。在安裝目錄中鍵入以下路徑:
在模擬器中,高亮度顯示 [SATSA-PKI 簽署測試] 並選擇 [選取]。會顯示以下確認訊息:
[This certificate will be used: (將使用此憑證︰) MohairAuth (MohairAuth)
This string will be signed: (此字串將接受簽署︰) JSR 177 Approved (JSR 177 已同意)
[This certificate will be used: (將使用此憑證︰) MohairAuth (MohairAuth)
此應用程式包含單一 MIDlet (JCRMIMIDlet),可展示如何使用 Java Card RMI (方便使用智慧卡的遠端物件協定) 與智慧卡應用程式進行通訊。與 SATSADemos 中的某些 MIDlet 相同,您需要使用適當的記憶體影像啟動 cref:
現在執行 JCRMIMIDlet 以瞭解您的應用程式如何才能與智慧卡上的分散式物件進行通訊。
此應用程式是使用 SIP (JSR 180) 直接在兩個裝置間進行通訊的簡單範例。通常裝置使用具有代理伺服器的 SIP,設定某種直接通訊。如需與代理伺服器相關的更多完整範例,請查考 GoSip。
若要瞭解 SIPDemo 的工作方式,請執行模擬器的兩個實例。在第一個模擬器中,選擇 [接收訊息]。您可以使用預設連接埠 (5070),然後選擇 [接收]。第一個模擬器正在偵聽內送的訊息。
在第二個模擬器中,選擇 [傳送訊息]。填入收件者、連接埠號、主旨和訊息的值,或接受預設值,然後選擇 [傳送]。您的訊息將顯示在第一個模擬器中。第一個模擬器的回應會顯示在第二個模擬器中。
開啟網路監視器後再嘗試一次。您將在網路監視器的 [SIP] 標籤中看到模擬器之間的通訊。
此應用程式使用不同的面板顯示相同的連絡人清單資訊和新聞標題。這些面板具有不同的顏色和字型。
選取 [SVGContactlist(skin 1)] 或 [SVGContactlist(skin 2)],然後按一下 [啟動]。
使用向上、向下箭頭導覽連絡人清單。反白顯示的名稱標記有特殊的字元 (> 或一個點),並且會以較大的字型顯示。
此套裝軟體包含的 MIDlet,示範 JSR 226 Scalable 2D Vector Graphics API for J2ME 的不同使用方法。此 API 提供載入操作、描繪和播放 SVG 內容的方式。
Scalable Vector Graphics (SVG) 1.1 規格定義以 XML 描述二維圖形的語言。完整規格可在 http://www.w3.org/TR/SVG11/ 中找到。
SVG Tiny (SVGT) 屬於 SVG 的一部份,適合類似行動電話的小型裝置。請參閱 http://www.w3.org/TR/SVGMobile/。SVG Tiny 是一種精簡但功能強大的 XML 格式,用於描述豐富的互動式 2D 動畫內容。圖形元素可進行邏輯分組並以 SVG 標記標識。
SVGBrowser MIDlet 顯示常駐電話檔案系統的 SVG 檔案。執行此示範之前,請將 SVG 檔案置於目錄 workdir\appdb\DefaultColorPhone\filesystem\root1 中。
啟動此示範。應用程式將顯示 root1 的內容。選取您的 SVG 檔並選擇 [開啟] 軟鍵。
[描繪 SVG 影像] 會從檔案中載入 SVG 影像加以描繪。查看示範程式碼就能看出影像大小是即時調整,以精確符合顯示區域。輸出是清晰且鮮明的。
此應用程式播放描繪萬聖節賀卡的 SVG 動畫。按下 8 播放,按下 5 開啟,按下 0 停止。如果您按下 8,按下 5 會重新繼續動畫。如果您按下 0,按下 5 會從頭開始播放動畫。
SVG 檔描述各個影像元素如何隨著時間變化,以形成此短動畫效果。
在以下程式碼範例中,JSR 226 javax.microedition.m2g.SVGImage 類別用於載入 SVG 資源。然後,javax.microedition.m2g.SVGAnimator 類別可處理複雜的 SVG 動畫,並提供播放動畫的 java.awt.Component 或javax.swing.JComponent。SVGAnimator 類別提供播放、暫停和停止動畫的方法。
此示範使用 API 呼叫生成影像。它可建立一個空 SVGImage 然後加入圖形內容,最後顯示該內容。
跳跳球播放一個 SVG 動畫。按下 8 播放,按下 5 開啟,按下 0 停止。如果您按下 8,按下 5 會重新繼續動畫。如果您按下 0,按下 5 會從頭開始播放動畫。
在此示範中,選取的圖示有黃色的邊界。當您移動到新圖示時,該圖示會變為選取的狀態,之前的圖示會變為未選取的狀態。如果您導覽至圖示網格之外,則會進行循環選取。也就是說選取某列的最後一個圖示時,向右移動的話就會選取同一列的第一個圖示。
此示範說明了合併 UI 標記和 Java 可帶來的靈活性: 豐富的功能集 (圖形、動畫和高階 2D 描繪),在圖形操控、預描繪或播放方面也極具靈活性。
在此範例中,圖形藝術家提供的 SVG 動畫,定義了功能表圖示的轉換狀態 (從未選取的狀態轉換為選取的狀態)。此程式使用 JSR 226 API 將每個圖示的動畫序列分別描繪至螢幕外的緩衝區 (以便之後加速描繪作業)。
緩衝處理讓 MIDlet 能適應裝置的顯示解析度 (因為圖形是以 SVG 格式定義的),並且保持點陣圖的描繪速度。此外,MIDlet 仍會運用 SVG 的動畫功能。
定義功能表項目外觀及其動畫效果的任務 (圖形藝術家和設計者的工作),和顯示功能表以及根據功能表選項啟動動作的任務 (開發人員的工作) 劃分極為清楚。只要藝術家和開發人員均遵守 SVG 文件結構慣例,這兩項任務便可獨立區分。
在此示範中,您可使用電話鍵為照片增加裝飾。這些鍵代表的值為:
若要裝飾,請按下 [#] 顯示挑選器。使用箭頭鍵反白顯示圖形物件。放大反白顯示的物件。按下 [選取] 以選擇目前的圖形,或按下箭頭鍵反白顯示不同的圖形。再次按下 [選取] 以將圖形增加到照片。當您增加裝飾時,會看到圖形上有一個紅色的 +。這表示已經加以選取,並且可以移動、調整大小和處理。
使用導覽箭頭移動圖形。使用 1 縮小圖形,使用 3 放大圖形。使用 5 或 6 翻轉,使用 7 或 9 旋轉。如果對位置滿意,就按下 [選取]。請注意,會顯示綠色三角形。這是游標。使用導覽鍵在圖形周圍移動綠色三角形。游標位於物件上的時候,會以紅色方框高亮度顯示物件。按下 [選取]。紅色 + 代表已經選取物件。
若要移除裝飾 (一種特性),請選取一個物件,然後按一下 [功能表] 軟鍵。按下 [2] 以移除特性。
啟動應用程式。會顯示軟體資訊畫面 (也用作說明)。最初的視圖為舊金山漫步的行程地圖。海灣 (以藍色表示) 在螢幕的右側。按下 [1] 開始行程。應用程式放大您在地圖上的位置。帶路指引顯示在水平軸的白色方塊中。執行行程時,按下 [7] 可逆時鐘旋轉地圖。請注意,地圖旋轉後文字會顯示在垂直軸上。再次按下 7 以還原預設方位。按下 4 以顯示說明螢幕。
此應用程式展示如何傳送與接收 SMS、CBS 與 MMS 訊息。Sun JavaTM Wireless Toolkit for CLDC 提供有彈性的模擬環境,以支援訊息傳送。訊息可以在模擬器實例之間交換,而且可以利用 WMA 主控台公用程式產生或接收。
因為此範例利用推送註冊表,所以只用 [執行] 按鈕看不到所有功能。利用在實際裝置上安裝應用程式的方式,使用 [經由 OTA 執行] 功能將應用程式安裝到模擬器。如果不知道如何執行,請查閱第 2 章。
若要運用推送註冊表,請使用 WMA 主控台,傳送一則訊息給模擬器。若要啟動主控台,請選擇 [檔案] > [公用程式]。在 WMA 方塊中按一下 [開啟主控台] 按鈕,以啟動 WMA 主控台。
按一下 WMA 主控台視窗中的 [傳送 SMS...] 按鈕。選擇模擬器的號碼 (可能是 +5550000)。如果不確定模擬器使用的號碼是什麼,請查看標題列。在 SMS 訊息視窗中選擇號碼,然後填入連接埠號 50000。再在 [訊息] 欄位鍵入文字訊息,並按一下 [傳送]。
選擇「是」。就會啟動 SMSReceive MIDlet,並立即顯示內送的 SMS 訊息。
您也可以用 WMA 主控台傳送與接收 CBS 與 MMS 訊息。如需詳細資訊,請參閱第 7 章。
備註 - 如果嘗試使用 WMA 主控台傳送文字訊息給 WMADemo,務必將連接埠號指定為 50000。CBS 訊息則使用連接埠 50001。對於 MMS 訊息,請使用 example.mms.MMSDemo 做為應用程式 ID。 |
例如,若要從 WMA 主控台傳送 MMS 訊息給模擬器,必須確定已經依上述方式,使用 [經由 OTA 執行] 安裝 WMADemo。啟動示範並選擇 [MMS 接收]。
在 WMA 主控台中,按一下 [傳送 MMS...],以開啟 MMS 撰寫視窗。填入訊息主旨、應用程式 ID example.mms.MMSDemo 與執行中模擬器的電話號碼。
接著,按一下 [部分] 標籤。WMA 主控台可讓您從硬碟中選擇要與 MMS 訊息一起傳送的檔案。按一下 [增加] 將檔案加入訊息中。使用檔案瀏覽器尋找要傳送的檔案,再按一下 [確定]。
模擬器會詢問能否啟動 WMADemo。按一下 [是]。就會顯示影像及其資訊。
Copyright © 2007, Sun Microsystems, Inc. 版權所有。