您可以安裝 Android 的 MQTT 用戶端範例 Java 應用程式 ,以與 MQTT 伺服器交換訊息。 應用程式使用來自 IBM®的 MQTT SDK 的用戶端程式庫。 您可以自行建置應用程式,或下載預先建置的範例應用程式。
關於此作業
Android 的 MQTT 用戶端範例 Java 應用程式 稱為 mqttExerciser
。 此應用程式使用 MQTT SDK 中的用戶端程式庫,並與 MQTT 伺服器交換訊息。
您可以自行建置範例應用程式,然後將它從 Eclipse 匯出為 mqttExerciser.apk,或使用預先建置的範例應用程式,該應用程式可作為檔案 mqttExerciser.apk ,位於 Mobile Messaging and M2M Client Pack的 sdkroot\SDK\clients\android\samples\apks 資料夾中。 如果您選擇自行建置應用程式,則會自訂您所建置的開發環境,以將行動式傳訊併入應用程式 for Android。 如此應可協助您開始在自己的應用程式中包含行動式傳訊。
程序
- 選擇您可以連接用戶端應用程式的 MQTT 伺服器。
伺服器必須支援 MQTT version 3.1 通訊協定。 IBM 中的所有 MQTT 伺服器都會這麼做,包括 IBM WebSphere® MQ 和 IBM MessageSight。 請參閱 開始使用 MQTT 伺服器。
- 取得正確的工具。
安裝 Java 開發套件 (JDK) 第 6 版或更新版本。 因為您正在開發 Java 應用程式 for Android,所以 JDK 必須來自 Oracle。 您可以從 Java SE 下載取得 JDK 。
您也需要 Eclipse 開發環境。 這必須是 Eclipse 3.6.2 (Helios) 或更高版本。 Eclipse 必須至少具有 6 的 Java 編譯器層次,才能符合您的 JDK。 您可以從 Eclipse Foundation取得這一切。
最後,您需要 Android SDK。 您可以從 取得 Android SDK取得此資訊。
- 下載 Mobile Messaging and M2M Client Pack 並安裝 MQTT SDK。
沒有安裝程式,您只是展開了下載的檔案。
- 下載 Mobile Messaging and M2M Client Pack。
- 建立您要安裝 SDK 的資料夾。
您可能想將資料夾命名為 MQTT
。 在這裡,此資料夾的路徑稱為 sdkroot。
- 將壓縮的 Mobile Messaging and M2M Client Pack 檔案內容展開至 sdkroot。 展開會建立以 sdkroot\SDK 開頭的目錄樹。
- 選用: 建置 mqttExerciser 範例應用程式 for Android。
配置 Eclipse 和 Android 工具,並從 MQTT SDK 匯入並建置 mqttExerciser 專案。
附註: 如果您現在不想這麼做,您可以使用預先建置的範例應用程式,此應用程式可作為檔案 mqttExerciser.apk ,位於 MQTT SDK 的 sdkroot\SDK\clients\android\samples\apks 資料夾中。
- 使用 JDK 中的 JRE 來啟動 Eclipse 開發環境。
- 從 Android SDK 選取並安裝一組套件和平台。
如需
Google 建議的平台及套件清單,請參閱
新增平台及套件 。
附註: SDK 平台必須是 Android API 層次 16 或更新版本。 使用較早的 API 層次,無法順利地編譯專案。
- 將 Android Development Tools (ADT) 外掛程式 新增至 Eclipse。
- 將範例 mqttExerciser 應用程式專案匯入至 Eclipse,並修正錯誤。
- 在路徑 sdkroot\SDK\clients\android\samples\mqttExerciser中,從 MQTT SDK 匯入範例應用程式專案。
「問題」視圖會列出許多建置錯誤。 您可以在接下來的幾個步驟中解決建置錯誤。
- 將 org.eclipse.paho.client.mqttv3.jar 程式庫複製到 Android 專案中的 libs 資料夾。 例如,在 Windows上,這是在 sdkroot\SDK\clients\java 資料夾下。 這時會顯示「檔案作業」視窗。 接受複製檔案選項,然後按一下確定。
- 用滑鼠右鍵按一下專案資料夾 com.ibm.msg.android; 按一下 。 閱讀並接受授權條款,然後按一下安裝。
- 用滑鼠右鍵按一下專案資料夾 com.ibm.msg.android; 按一下 。
- 如果工作區仍有大約 84 個錯誤(參閱置換超類別方法),則編譯器相符性層次可能設為 1.5 或更低。 Android SDK 第 16 版預期編譯器標準層次不會大於 1.5。 若要修正剩下的錯誤,請完成下列步驟:
- 檢查並 (必要的話) 將 Android SDK 及對應的 Eclipse 外掛程式更新至 Android SDK 第 17 版。
- 用滑鼠右鍵按一下 com.ibm.msg.android 專案資料夾,然後選取 。 檢查編譯器相符性層次,將其設為至少 1.6,然後重建工作區。
- 在 Android 裝置上安裝並啟動 MQTT 用戶端範例 Java 應用程式 。
請參閱 developer.android.com 頁面 執行應用程式。
如果您自行建置應用程式作為 Eclipse 專案,則可以從 Eclipse啟動應用程式。
如果您有應用程式套件 (APK) 檔案 mqttExerciser.apk,您可以使用 Android Debug Bridge (ADB) 安裝指令,在 Eclipse 外部安裝它。 此指令會將 APK 檔的位置當作引數。 如果您使用預先建置的範例應用程式,則位置為 sdkroot\SDK\clients\android\samples\apks\mqttExerciser.apk。
- 使用 mqttExerciser 範例應用程式 for Android 來連接、訂閱及發佈至主題。
- 開啟 Android 的 MQTT 用戶端範例 Java 應用程式。
- 連接至 MQTT 伺服器。
- 按一下 + 符號,以開啟新的 MQTT 連線。
- 在用戶端 ID 欄位中輸入任何唯一的 ID。 請耐心等待,按鍵速度可能緩慢。
- 在 伺服器 欄位中輸入 MQTT 伺服器的 IP 位址。
此為您在第一個主要步驟中選擇的伺服器。 IP 位址不得為 127.0.0.1
- 輸入 MQTT 連線的埠號。
一般 MQTT 連線的預設埠號是 1883
。
- 按一下連接。
如果連線成功,您會看到
正在連接
訊息,後面接著這個視窗:
- 訂閱主題。
- 按一下已連接訊息。
- 按一下訂閱標籤,並輸入主題字串。
- 按一下訂閱動作。
隨即會出現一小段時間的已訂閱
訊息。
- 按一下歷程標籤。
- 現在發佈至相同的主題。
- 按一下發佈標籤,輸入您訂閱時所輸入的相同主題字串。 輸入訊息。
- 按一下發佈動作。
隨即會顯示一小段時間的兩個訊息,先是
已發佈
,然後是
已訂閱
。 發佈會顯示在狀態區中(將分隔線向下拉即可開啟狀態視窗)。
- 按一下歷程標籤以檢視完整歷程。
- 中斷用戶端實例的連線。
- 按一下動作列中的功能表圖示。
Android 的 MQTT 用戶端範例 Java 應用程式 會將 中斷連線 按鈕新增至 MQTT 連線詳細資料 視窗。
- 按一下中斷連線。
- 按 上一步 ,以回到 MQTT 用戶端範例 Java 應用程式 階段作業的清單。
- 按一下加號以啟動新的 MQTT 用戶端範例 Java 應用程式 階段作業。
- 按一下中斷連線的用戶端以重新連接。
- 按上一步回到啟動程式。
- 按一下作業按鈕以列出正在執行的應用程式。 找出 MQTT 用戶端範例 Java 應用程式。 滑動圖示使其脫離畫面,以關閉它。
下一步
如果您自己建置範例應用程式,則已準備好開始開發自己的 Android 應用程式,這些應用程式會呼叫 MQTT 程式庫來交換訊息。 您可以在 mqttExerciser中的類別上建立 Android 應用程式的模型。 如果要研究範例,請在 mqttExerciser 專案中為 com.ibm.msg.android 和 com.ibm.msg.android.service 中的類別產生 Javadoc。