溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android研究之英特爾 Android* 開發(fā)人員指南上的對等應用詳解

發(fā)布時間:2020-07-17 08:53:58 來源:網(wǎng)絡 閱讀:399 作者:dong2008hong 欄目:移動開發(fā)

簡介

當沒有 Wi-Fi 訪問點或互聯(lián)網(wǎng)訪問時,Android* 應用可能需要對等連接在兩臺或多臺 Android* 設(shè)備之間建立連接。 比如,文件共享應用和多人游戲。

該功能可使用 NFC、藍牙或 Wi-Fi 對等技術(shù)來實施。 特定案例中的首選技術(shù)需要根據(jù)所需的距離、連接速度、功耗和獨特的技術(shù)特性來決定。

本文將對 Wi-Fi 對等技術(shù)進行評估。 Wi-Fi 對等(P2P)支持具備適當應用的 Android 4.0 或更高版本在沒有接入點的情況下通過 Wi-Fi 彼此連接。 Android Wi-Fi P2P 框架符合 Wi-Fi Direct 標準。 一般情況下,Wi-Fi Direct 支持更快的速度和更遠的距離,但是所需的功耗比藍牙連接高。上一章研究了Android* Bullet 物理引擎移植至英特爾 架構(gòu)詳解 

實施

本文將重點介紹在兩臺 Android 設(shè)備之間建立套接字連接的基本步驟。

如要使用 Wi-Fi P2P,應用必須將最低軟件開發(fā)套件版本正確設(shè)置為 14,并在 AndroidManifest.xml 文件中申請如下許可:

  • ACCESS_WIFI_STATE

  • CHANGE_WIFI_STATE

  • ACCESS_NETWORK_STATE

  • CHANGE_NETWORK_STATE

  • INTERNET

應用需要調(diào)用 WifiP2pManager 對象的 initialize() 方法,以使用 Wi-Fi P2P 框架注冊應用。 這種方法必須在執(zhí)行 Wi-Fi P2P 操作前調(diào)用。

應用需要為以下 Wi-Fi P2P intent 創(chuàng)建和注冊廣播接收器:

  • WIFI_P2P_CONNECTION_CHANGED_ACTION

  • WIFI_P2P_PEERS_CHANGED_ACTION

  • WIFI_P2P_STATE_CHANGED_ACTION

  • WIFI_P2P_THIS_DEVICE_CHANGED_ACTION

執(zhí)行以上步驟后,應用將能夠在 WifiP2pManager 對象中調(diào)用 Wi-Fi P2P 方法,并接收 Wi-Fi P2P intent。 大部分的 WifiP2pManager 方法是異步的,因此開發(fā)人員需要向每種方法調(diào)用提供 listener 來獲取狀態(tài)和結(jié)果。

如要發(fā)現(xiàn)可用的 Wi-Fi P2P 設(shè)備,需要調(diào)用 WifiP2pManager 對象的 discoverPeers() 方法。 發(fā)現(xiàn)流程將會一直執(zhí)行,知道設(shè)備打開 Wi-Fi P2P 連接或調(diào)用 stopPeerDiscovery 方法。

當應用接收 WIFI_P2P_PEERS_CHANGED_ACTION intent 時,使用 WifiP2pManager 對象的 requestPeers()方法將能夠獲得發(fā)現(xiàn)的對等設(shè)備列表。

如要連接獲取的對等設(shè)備列表中的某臺設(shè)備,需要準備包含完整 deviceAddress 字段的 WifiP2pConfig對象,并調(diào)用 WifiP2pManager 對象的 connect() 方法。

成功連接后,通過調(diào)用 WifiP2pManager 對象的 requestConnectInfo() 方法獲取設(shè)備 IP 地址。

然后,使用 IP 地址創(chuàng)建一個 Socket 和 ServerSocket 對象。 使用標準的套接字接口執(zhí)行通信。

以下是調(diào)用方法并接收 intent 以準備為 Wi-Fi P2P 設(shè)備建立連接的圖表:

Android研究之英特爾 Android* 開發(fā)人員指南上的對等應用詳解

如要在兩臺 Android 設(shè)備之間建立 Wi-Fi P2P 連接,至少需要執(zhí)行這些步驟。 應用應為所有 Wi-Fi P2P intent 和 listener 實施處理程序,以充分響應不同的事件,如連接丟失或 Wi-Fi 禁用。 請參閱 Android 文檔,了解更多信息。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI