Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android手機間無線互傳功能探索和實現

Android手機間無線互傳功能探索和實現

編輯:Android開發教程

年前研究了一下Android如何實現無線互傳的功能,寫了個小demo,最近無事,遂整理一下,與各位共享。前期調研發現,Android想要實現無線互傳有以下幾種技術:1,Bluetooth通行已久,簡單易用,無奈速度奇慢是硬傷;2,NFC,官方從API 9開始支持,但各廠商對此技術持觀望態度,比如我的三星就沒有相應NFC硬件,NFC適用近場少量數據傳輸,尚未測試數據量的表現,不過NFC所謂的近場對距離要求相當苛刻,基本是要貼著才能傳;3,WIFI-P2P,傳輸速度快,且P2P使得兩台設備互為C/S,傳輸可雙向進行,官方從API 14開始支持,考慮到目前API 14以下的設備保養量巨大,只能暫時放棄此技術。

權衡一下,參考目前各類無線快傳軟件,最終確定使用Wifi AP方式,自測兼容API 8設備,傳輸速度快,但只能單向傳輸。Client端通過Wifi連接到Server端開啟的Wifi AP,連接成功後Client通過HttpEngine向Server發起Http請求,Server通過一個簡易的HttpServer向Client提供響應服務,下面用一個非標准的流程圖來大致示意一下方案流程:

在上傳工程之前,對源代碼中幾個重要的類簡單解釋一下:

Client端

WifiApClientManager:對WifiManager的接口進行了封裝,以便於進行開啟、連接等操作

HttpEngineLite:發起Http請求的"引擎"類

WifiApClientRequest:請求抽象類,子類WifiApClientGetRecvListRequest,WifiApClientGetFileRequest分別表示獲取獲取Server端待傳文件列表請求及獲取Server端指定文件請求,使用HttpEngineLite執行具體操作

NanoHTTPClient:提供獲取Server端待傳文件列表,獲取Server端指定文件等操作接口,使用線程池管理WifiApClientRequest

Server端

WifiApServerManager:對WifiManager的接口進行了封裝,以便於進行開啟AP,配置AP等操作

WifiApServerUtil:定義了Android AP通用網關IP

NanoHTTPD:此類為引用的開源代碼(A simple, tiny, nicely embeddable HTTP server in Java)

NanoHTTPServer:NanoHTTPD的子類,實現其接口,返回相應的HttpResponse

Read the fucking source code:

http://files.cnblogs.com/zealotrouge/WifiAPDemo.7z

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved