總覽

Nearby Connections 是一種對等網路 API,可讓應用程式輕鬆探索鄰近裝置、與這些裝置連線,並即時交換資料,無論網路連線狀態為何皆可使用。

部分應用實例包括:

  • 協作白板:在共用的虛擬白板上,與附近的參與者一起記錄想法。
  • 本機多人遊戲:設定多人遊戲,並邀請附近的其他使用者加入。
  • 多螢幕遊戲:將手機或平板電腦當做遊戲控制器,在附近的 Android 大螢幕裝置 (例如 Android TV) 上玩遊戲。
  • 離線檔案傳輸:快速分享相片、影片或任何其他類型的資料,不需要網路連線。

簡介

Nearby Connections 可讓鄰近裝置以完全離線的對等互連方式,進行廣告、探索及連線。裝置之間的連線頻寬高、延遲低,且完全加密,可快速安全地轉移資料。

這項 API 的主要目標是提供簡單、可靠且高效能的平台。在幕後,這項 API 會結合藍牙、BLE 和 Wi-Fi 技術,充分發揮各項技術的優勢,同時避開各自的缺點。這項功能可有效抽象化各種平台和 OS 版本中藍牙和 Wi-Fi 的不確定性,讓開發人員專注於對使用者重要的功能。

API 總覽

API 的使用分為兩個階段:連線前和連線後。

在連線前階段,廣告主會宣傳自己,而探索者會探索附近的廣告主並傳送連線要求。探索者向廣告主發出連線要求後,雙方會啟動對稱式驗證流程,並各自接受 (或拒絕) 連線要求。

雙方接受連線要求後,系統會視為連線已建立,裝置會進入連線後階段,雙方可在此階段交換資料。

廣告與探索

廣告主會向其他探索者顯示,而探索者在找到或失去新的廣告主時,會收到通知。

建立連線

當探索者想連線至附近的廣告主時,可以要求連線。

雙方都會收到連線啟動程序的通知,並可選擇接受或拒絕連線。

雙方都回覆後,系統會通知雙方結果。如果雙方都接受連線,系統就會視為連線已建立,並開始轉移資料。

交換資料

建立連線後,API 的使用方式會對稱,因此廣告主和探索者之間不再有區別。

雙方現在可以交換資料。支援的酬載有 3 種:

  • 位元組:位元組陣列上限為 32k,適合傳送中繼資料或控制訊息等內容。
  • 檔案:任何大小的檔案;這些檔案會從應用程式傳輸到網路介面,且跨程序界限的複製作業最少。
  • 串流:即時產生的資料串流,例如錄製的音訊/視訊,事先不知道最終大小。

接收者會收到新傳入的資料、進度更新、取消或失敗通知。

建立的連線為全雙工,也就是說,廣告主和探索者可以同時傳送及接收資料。

資料收集

使用 Google Play 服務 Nearby SDK 時,系統會收集使用情況分析資料,以提升體驗。

  • 效能指標:使用 Nearby SDK 掃描及連線至裝置時,系統會收集探索和連線延遲、可靠性及輸送量。
  • 裝置資訊:系統會收集裝置型號、國家/地區、建構版本和應用程式套件名稱,並與效能指標建立關聯,以識別區域和裝置專屬的切片。

使用者可以前往「設定」>「Google」>「使用狀況與診斷」,允許或拒絕收集這類資料。