freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android的wifi文件傳輸系統(tǒng)的設計與實現(xiàn)-資料下載頁

2024-11-07 22:12本頁面

【導讀】市場上有很多文件分享的軟件,但其傳輸?shù)姆绞蕉即嬖谝欢ǖ娜毕?。輸需要流量或網(wǎng)絡連接,WiFi熱點傳輸時不能使用WiFi上網(wǎng)等問題。含了文件的搜索,管理,刪除,文件/消息傳輸?shù)裙δ堋W疃嘀С?個文件同時。發(fā)送,在連接設備后,可以瀏覽對方設備的文件目錄。發(fā)展和相關(guān)知識。通過對系統(tǒng)的運行測試得出可以發(fā)現(xiàn):系統(tǒng)運行流暢,多文件。應用的數(shù)據(jù)存儲.

  

【正文】 的接口即可。 實際運行截圖如圖 44 所示。 西南科技大學本科生畢業(yè)論文 23 圖 44 移除要發(fā)送的文件截圖 查看文件屬性 查看文件的基本屬性,以確定該文件是否是自己需要發(fā)送的文件。用例描述如表 44 所示。 表 44 查看文件屬性用例描述 功能描述 前置條件 參與者 基本操作流 可選操作流 查看文件的一些基本屬性 ,如大小修改日期等 進入應用主界面 用戶 1) 找到需要查看屬性的文件 2) 長按彈出上下文菜單 3) 點擊屬性菜單顯示文件基本屬性 1) 找到需要查看屬性的文件 2) 長按彈出上下文菜單 3) 點擊其他位置取消查看文件屬性 技術(shù)關(guān)鍵:知道文件的路徑即可獲得文件的一些基本屬性,如文件名,大小等,最后修改日期等。通過 File 類可以獲取文件的大小,路徑,文件名,最后修改日期等信息。獲取到的日期是毫秒的形式表示的,所需要要 Date 類來轉(zhuǎn)化為西南科技大學本科生畢業(yè)論文 24 年月日等。關(guān)鍵代碼如圖 45 所示。 圖 45 顯示文件屬性關(guān)鍵代碼 實際運行截圖如圖 45 所示。 圖 46 查看文件屬性截圖 打開音樂,視頻等文件 調(diào)用手機上對應的應用打開音樂,視頻,文件, ppt, word,圖片等文件,進行文件預覽。用例秒速如表 45 所示。 西南科技大學本科生畢業(yè)論文 25 表 45 打開文件用例描述 功能描述 前置條件 參與者 基本操作流 可選操作流 打開手機上的文件進行預覽 進入應用主界面 用戶 1) 找到需要查看屬性的文件 2) 長按彈出上下文菜單 3) 點擊“打開”菜單進行文件預覽 4) 選擇 Activity 來打開 1) 找到需要查看屬性的文件 2) 長按彈出上下文菜單 3) 點擊其他位置取消打開文件操作 技術(shù)關(guān)鍵:根據(jù)不同類型的文件,設置不同的 Intent 來啟動對應的 Activity預覽文件。如視頻文件,需要為 intent 設置 type 為 video/*,為 intent 設置 data為要打開的文件路徑 。 系統(tǒng)會自動匹配能夠接收這個 Intent 的 Activity,如果有多個 Activity,系統(tǒng)會給出列表讓用戶選擇 ,由用戶來決定使用哪個 Activity 打開所選的文件 。 關(guān)鍵代碼如圖 47 所示 。 圖 47 打開文件關(guān)鍵代碼 西南科技大學本科生畢業(yè)論文 26 實際運行截圖如圖 48 所示: 圖 48 打開本機音樂截圖 遍歷手機文件 瀏覽手機的目錄結(jié)構(gòu),查看目錄中的文件,并且可以進行查看文件相關(guān)屬性,或者打開文件,或者加入發(fā)送列表等操作。用例描述如表 46 所示。 表 46 遍歷手機文件用例描述 功能描述 前置條件 參與者 基本操作流 可選操作流 打開手機上的文件進行預覽 進入應用主界面 用戶 1) 進入“瀏覽”分頁界面 2) 點擊內(nèi) 置 SD 卡或者外置 SD 卡開始瀏覽手機目錄 技術(shù)關(guān)鍵:根據(jù)不同的文件夾獲取其子文件夾和子文件列表并排序顯示。子文件夾和子文件列表要分開,然后現(xiàn)將子文件夾列表加入最終列表,然后再將子文件列表加入最終列表,這樣可以保證文件夾在文件前面。當 2 臺設備連接,可以瀏覽對方的文件夾內(nèi)容,其實就是把對方的設備先獲取自己指定文件夾下的子文件夾和子文件列表 ,然后發(fā)送到這邊的設備,這邊的設備接收到了列表之后在本地顯示。 實際運行截圖如圖 49 所示: 西南科技大學本科生畢業(yè)論文 27 圖 49 瀏覽文件夾截圖 設備連接管理模塊 這個模塊的功能就是管理管理設備這塊,提供周圍可用的設備列表,在用戶點擊時鏈接設備,在退出時斷開設備連接等。這個模塊時文件傳輸模塊的基礎(chǔ),沒有先建立連接,設備之間就不能交換數(shù)據(jù)了。 這個模塊涉及的源文件主要是包括: 1) ..src/p2p/ 2) ..src/fragment/ 這里的 也是文件 /數(shù)據(jù)傳輸?shù)闹饕次募?,由于這 2 個模塊關(guān)系太過緊密,所有大部分代碼寫在了一起。 下面是這個模塊的一些主要功能代碼 : 1) 開始發(fā)現(xiàn)設備 public void discoverDevice(ActionListener listener) { (TAG, WifiP2pHelperdiscoverDevice())。 if (!isWifiOn()) { toggleWifi(true)。 } 西南科技大學本科生畢業(yè)論文 28 //如果當前已連接到了設備,中止本次搜索 if (isConnected) { (TAG, WifiP2pHelperdiscoverDevice endedisConnected=true)。 return。 } //通知 Activity 更新界面 (WIFIP2P_DEVICE_DISCOVERING)。 //通知底層開始搜索周圍的設備 (channel, listener)。 } 首先是查找周圍的設備,上面的 manager 是 WifiP2pManger,這是 Android系統(tǒng)提供的一個類,主要輔助 WifiP2p 的管理,并且提供了一系列的方法。如這里的 方法。由于設備的查找,連接等等都需要一定的時間,所以 discoverPeers 這個方法并不能直接返回結(jié)果,而是在查找到新設備是發(fā)送一個廣播( ) ,所以需要接收這個廣播,在這時,就可以獲取到已經(jīng)發(fā)現(xiàn)的設備了。 2) 連接設備 public void connectDevice(WifiP2pDevice device, ActionListener listener) { WifiP2pConfig config = new WifiP2pConfig()。 = 。//設置連接設置的地址 = 。//設置連接配置 WPS (channel, config, listener)。//調(diào)用系統(tǒng) API 開始連接設 備 connectedDevice = device。 } 這個方法的作用就是連接設備了,和發(fā)現(xiàn)設備一樣,需要花費一些時間,所以這個方法也不會立刻返回連接結(jié)果,而是在連接成功 /失敗的時候發(fā)送一個廣播( ),所以我們需要接收這個廣播,并且根據(jù)廣播附帶的信息來判斷是否連接上了設備,還是斷開連接設備了。 連接其他設備 設備之間需要先建立 WiFiDirect 連接 ,才能夠使用 Socket 進行通信,傳輸 文西南科技大學本科生畢業(yè)論文 29 件等。用例描述如表 47 所示。 表 47 連接其他設備用例描述 功能描述 前置條件 參與者 基本操作流 可選操作流 連接其他WifiDirect設備 進入應用主界面 用戶 1) 點擊界面右下角的 ”傳 ”按鈕進入搜索設備界面 2) 點擊搜索到的設備開始連接 3) 連接設備成功 ,自動返回主界面 1) 選擇幾個文件加入發(fā)送列表 ,然后點擊 ”發(fā)送文件 ”按鈕 ,進入設備搜索界面 2) 點擊搜索到的設備開始連接 3) 連接設備成功 ,自動返回主界面 技術(shù)關(guān)鍵:利用系統(tǒng)的 WifiP2pManager 類中的方法來發(fā)現(xiàn),連接設備 。這個類又會通知 WifiP2p 相關(guān)后臺的系統(tǒng)服務來進行操作,而且操作比較耗時,所以在調(diào)用方法時需要相關(guān)的監(jiān)聽。當后臺異步操作執(zhí)行完了會調(diào)用這些監(jiān)聽而不讓主線程堵塞。 實際運行截圖如圖 410 所示: 圖 410 連接其他設備截圖 西南科技大學本科生畢業(yè)論文 30 重命名本機設備 重命名本機的 WifiDirect 設備,方便其他用戶識別自己。用例描述如表 48所示。 表 48 連接其他設備用例描述 功能描述 前置條件 參與者 基本操作流 可選操作流 修改本機WifiDirect名 進入應 用主界面 用戶 1) 點擊菜單鍵進入側(cè)滑菜單 ,點擊設備名進入編輯模式 2) 輸入新的設備名, 然后保存 技術(shù)關(guān)鍵: WifiP2pManager 里面提供了修改本機 WifiDirect 名的方法,但是其對外值隱藏的,所以要 利用 java 的 反射機制 來 調(diào)用 WifiP2pManager 類中的setDeviceName()方法,來設置設備名稱 。 實際運行截圖如圖 411 所示: 圖 4 11 修改本機設備名截圖 西南科技大學本科生畢業(yè)論文 31 文件 /數(shù)據(jù)傳輸模塊 這是本程序的核心模塊,真正實現(xiàn)數(shù)據(jù)發(fā)送 /接收到的地方,這里傳輸帶數(shù)據(jù)可以是一個數(shù)字 ,或者一串字符,或者一個文件,并沒有什么限制。在發(fā)送數(shù)據(jù)的時候是以字節(jié)為單位發(fā)送的,不能以字符為單位,因為有些文件并不是字符文件,如果以字符為最小單位發(fā)送,會使接收到底的文件發(fā)送一些錯誤。 由于可能存在很多個要發(fā)送的文件,如果同時發(fā)送的文件過多,會增大系統(tǒng)功耗,而且傳輸速度也會因此而降低,所有應用會有個相應的限制,當然應用也給用戶添加了界面借口可以規(guī)定同時最大的傳輸文件個數(shù)。但要發(fā)送的文件過多時,這些文件會在一個發(fā)送隊列中等待,當有一個發(fā)送任務結(jié)束之后,應用會自動檢查發(fā)送隊列是否為空,不為空則繼續(xù)出隊前面的 文件并開始發(fā)送任務,但是整個過程中同時存在的發(fā)送任務個數(shù)不會超過規(guī)定的最大發(fā)送個數(shù)的。 文件的傳輸需要發(fā)送方和接收方約定好發(fā)送的數(shù)據(jù)的格式,應用中約定如圖412 所示: 圖 412 傳輸數(shù)據(jù)格式示意圖 第一個字節(jié)表明自己想干嘛,程序中定義了如下的一些意圖: public static final byte TRANSPORT_INTENT_SENDFILE = 1。 //設備交互意圖—————— 傳文件 public static final byte TRANSPORT_INTENT_CMD_ASK_FOR_SUB_DIRS = 2。 //設備交互意圖 —————— 發(fā)送命令,請求獲取文件夾下所有的子文件夾和子文件 public static final byte TRANSPORT_INTENT_CMD_ASK_FOR_DOWNLOAD_FILE = 3。 //請求下載文件 public static final byte TRANSPORT_INTENT_REPLAY_CMD_ASK_FOR_DOWNLOAD_FILE = 4。 //回復請求下載文件的結(jié)果 public static final byte TRANSPORT_INTENT_DATA_DIRS = 5。 //設備交互意圖—————— 與 TRANSPORT_INTENT_CMD_ASK_FOR_SUB_DIRS 對應 public static final byte TRANSPORT_INTENT_SEND_TEXT_MSG = 7。 //設備交互意圖西南科技大學本科生畢業(yè)論文 32 —————— 發(fā)送文本消息 如果是傳文件,那么意圖碼為 TRANSPORT_INTENT_SENDFILE,即 1。第一字節(jié)之后的其他信息里面又包括了其他的約定,如圖 413 所示: 圖 413 文件傳輸數(shù)據(jù)格式示意圖 即如果是文件,發(fā)送信息依次如下: 1) 意圖代碼( 1byte) 2) 附加文件信息的長度,假設這個值為 X( 4byte 即 1 個 int) 3) 附加文件信息(長度為 X) 4) 文件真正的內(nèi)容 接 收方接收文件的時候也會根據(jù)這個約定來接收,即接收文件的過程如下: 1) 接收意圖代碼 2) 接收文件附加信息的長度,這個長度用于告知下一步該接收多少個字節(jié) 3) 接收文件附件信息,用于本地創(chuàng)建和發(fā)送方一樣名字的文件,保持文件發(fā)送前后名稱一致。 4) 接收文件內(nèi)容 其他的幾個意圖碼都是在一個功能中用到 的:瀏覽對方文件夾,并可以下載文件到本地。一次最簡單但是完整的過程如圖 415 所示。 根據(jù)上面的介紹,傳輸模塊的構(gòu)架很清晰簡單 ,所有具有很強的擴展性,例如想在 2 臺設備之間實現(xiàn)簡單的文字聊天功能,只需對傳輸模塊做如下步驟: 1) 添加意圖碼(如 TRANSPORT_INTENT_SENDMSG) 2) 發(fā)送和接收的地方做約定,如圖 414 所示: 約定格式也很簡單: 1) 第一個字節(jié)為意圖碼 2) 剩下的所有內(nèi)容即為消息內(nèi)容 發(fā)送文本消息相比想發(fā)送文件要簡單許多。 西南科技大學本科生畢業(yè)論文 33 圖 414 消息傳輸數(shù)據(jù)格式示意圖 手機 A 手機 B1 : 請求設備連接 ()2 : 設備連接成功 ()3 : 請求瀏覽對方文件夾 ()4 : 同意,并返回子文件夾列表 ()5 : 請求下載文件 ()
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1