.net手機軟體開發(六)OBEX應用——檔案傳輸部分

來源:互聯網
上載者:User
(六) OBEX應用——檔案傳輸部分

在行動數據傳輸方面基本OBEX應用分為

l 檔案傳輸

l IrMC同步

檔案傳輸又可以細分為以下基本操作

l 初始化串連

l 中斷連線

l 設定路徑

l 取得目錄資訊

l 建立目錄

l 上傳下載檔案

l 刪除檔案或空目錄

在筆者的軟體當中設計了OBEX這個類,裡麵包含了以上所有的基本操作。另外針對M55的服務端的特殊性又設計了更名、取得磁碟空間資訊、移動、拷貝檔案的功能。具體請參考原始碼。

下面具體講述各個操作的細節。

l 初始化串連

初始化串連包括了使手機進入OBEX狀態再到發送Connect指令的一系列過程。具體流程參考下圖。

ATÆAT^SQWE=0ÆAT^SQWE=3ÆConnectÆ串連到Folder-Listing Service

其中AT^SQWE=0和AT^SQWE=3是西門子特有的隱藏的AT指令,甚至在官方的AT指令集裡面都沒有提到。其作用是初始化手機到OBEX模式。

發送Connect指令收到手機回複以後確定Max Packet Length等參數。最後串連到Folder-Listing Service進行檔案操作。如果需要IrMC同步的話,在Connect後直接連接到IrMC Sync Service即可,手機立刻進入同步模式,所有的應用程式退出。

在筆者的程式中當中首先使用AT指令確定手機當前的工作,如果逾時,嘗試發送+++並等待1秒鐘以便手機從不正常的OBEX狀態中退出。然後在此發送AT,成功後即進行檔案操作,否則引發一個錯誤。

l 中斷連線

這裡的中斷連線是指從OBEX模式退出到AT狀態中。在AT指令中,連續發送三個0x2B然後等待一秒鐘以上即可退出資料模式進入常規AT模式。

l 設定路徑

程式中使用SetPath操作設定路徑。需要注意的是,可以設計兩種風格的過程:一種使用絕對路徑,另一種使用相對路徑。

對於手機而言,經筆者實踐證明,使用絕對路徑要比使用相對路徑方便,而且更準確,但效率上稍遜,特別是在多層目錄的情況下。由於手機沒有能夠返回當前路徑的方法,所以相對路徑總難以控制,只有通過程式控制,極容易出現錯誤。所以建議使用絕對路徑。

如果使用絕對路徑,那麼路徑名將呈現\path1\path2這種形式。首先回到根目錄,然後一級一級的到達目的。在筆者的OBEX類當中,可以看到BacktoRoot這個過程。其作用就是把當前程式路徑切換到根目錄以免引起混亂。

l 取得目錄資訊

要取得一個目錄的檔案資訊可以用發送Get指令。該Get指令需要一個TypeHeader,其值為x-obex/folder-listing

隨後服務端會返回一個xml檔案,包含了整個目錄的資訊。例如子目錄名、檔案名稱、大小、最後修改時間。再通過xml解析後就會得到目錄資訊。

l 建立目錄

當SetPath的Flags的Bit1設為1並且無法找到目錄時,服務端會建立這個目錄並進入。

請注意,再次使用SetPath並將Flags的Bit0設為1返回上層目錄,否則容易引起混亂。

l 上傳下載檔案

使用Put和Get命令可以實現上傳和下載檔案。注意所有的檔案操作都在SetPath所指定的目錄下進行。

使用Put命令實現上傳時,至少需要提供NameHeader,BodyHeader,一般還要提供LengthHeader,DateTimeHeader。大檔案傳輸需要正確處理BodyHeader,不能超出了服務端最大所能接收的Packet的大小,否則會出現錯誤。

需要注意的是如果當前檔案存在,那麼Put命令不會覆蓋已有的檔案而是追加,導致錯誤。傳輸檔案之前需要首先刪除同名檔案。

使用Get命令實現下載時,只需要提供NameHeader即可。具體例子參考上一節。

l 刪除檔案或空目錄

使用Put命令,其NameHeader指定為檔案名稱或目錄名並將BodyHeader設定為空白即可。

非空目錄無法刪除,會返回錯誤。



西門子手機還有移動、拷貝等功能,具體實現方法請參閱OBEX原始碼。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.