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

來源:互聯網
上載者:User

  年前研究了一下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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.