Search This Blog

7/23/16

在 Intel Android 的點對點應用程式* 開發人員指南

在 Intel Android 的點對點應用程式* 開發人員指南

簡介

Android* 應用程式可能需要在兩個以上沒有 Wi-Fi 存取點或網際網路存取的 Android* 裝置之間使用點對點連線,例如檔案分享應用程式及多人對戰遊戲。
這項功能可使用 NFC、藍牙或 Wi-Fi 點對點技術實作。任何特定情況偏好使用的技術,需視所需的距離、連線速度、耗電量及獨特技術功能而定。
本文將探討 Wi-Fi 點對點技術。Wi-Fi 點對點 (P2P) 可讓採用 Android 4.0 以上版本作業系統且配備適當硬體的裝置,透過 Wi-Fi 互相連線,無需使用存取點。Android Wi-Fi P2P 架構遵循 Wi-Fi Direct 標準。Wi-Fi Direct 一般提供更快的速度及更長的距離,但所需的耗電量高於藍牙連線。

實作

本文將強調在兩部 Android 裝置之間設定插槽連線的基本步驟。
應用程式為了使用 Wi-Fi P2P,必須正確地將最低 SDK 版本設定為 14,並於 AndroidManifest.xml 檔案要求下列權限:
  • ACCESS_WIFI_STATE
  • CHANGE_WIFI_STATE
  • ACCESS_NETWORK_STATE
  • CHANGE_NETWORK_STATE
  • INTERNET
應用程式應呼叫 WifiP2pManager 物件的 initialize() 方法,以登錄具有 Wi-Fi P2P 架構的應用程式。此方法必須於任何 Wi-Fi P2P 作業前呼叫。
應用程式應針對下列 Wi-Fi P2P 意圖建立及登錄廣播接收器:
  • WIFI_P2P_CONNECTION_CHANGED_ACTION
  • WIFI_P2P_PEERS_CHANGED_ACTION
  • WIFI_P2P_STATE_CHANGED_ACTION
  • WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
進行以上步驟之後,應用程式就能呼叫 WifiP2pManager 物件之中的 Wi-Fi P2P 方法,並接收 Wi-Fi P2P 意圖。大部分 WifiP2pManager 方法為非同步,因此開發人員需要提供接聽程式至各個呼叫方法,以取得狀態及結果。
為搜尋可用的 Wi-Fi P2P 裝置,可呼叫 WifiP2pManager 物件的 discoverPeers() 物件。探索程序將持續進行,直到裝置啟動 Wi-Fi P2P 連線為止,否則就將呼叫 stopPeerDiscovery 方法。
應用程式接收 WIFI_P2P_PEERS_CHANGED_ACTION 意圖時,可使用 WifiP2pManager 物件的requestPeers() 方法,取得已探索點的清單。
若要由擷取點清單連線至特定裝置,請使用完成的 deviceAddress 欄位準備 WifiP2pConfig 物件,並呼叫 WifiP2pManager 物件的 connect() 方法。
成功連線後,請呼叫 WifiP2pManager 物件的 requestConnectInfo() 方法取得裝置 IP 位址。
之後請使用 IP 位址建立 Socket 及 ServerSocket 物件。使用標準的插槽介面執行通訊。
下圖為準備 Wi-Fi P2P 裝置連線的呼叫方法及接收意圖:

這些步驟是在兩部 Android 裝置之間建立 Wi-Fi P2P 連線的基本需求。應用程式應針對所有 Wi-Fi P2P 意圖及接聽程式執行處理程式,以適當回應不同事件,例如連線遺失或停用 Wi-Fi。請參閱 Android 文件瞭解更多詳細資訊。

參考資料

相關文章和資源:

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...