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」>「使用狀況與診斷」,允許或拒絕這項收集行為。