2011-02-23 71 views
3

我試圖編寫Windows Phone 7的最基本的應用程序,並希望能夠發送文件(特別是XML,以防改變任何內容)到我的應用程序。目前我有一個WCF服務設置,所以我可以通過它發送推送通知。問題是我可以通過推送通知發送的原始數據量有限制。Windows Phone 7 - 如何從/嚮應用程序發送文件?

我對此的解決方案是發送初始推送通知(tile或raw)以提醒我的應用程序我想向其發送文件,然後使該應用程序以某種方式與服務器進行通信(所有內容都在我的個人電腦BTW - 我只是想弄清楚事情是如何工作的) - 應用程序將從中接收/下載文件。

什麼是完成這一任務的最簡單的方法?請注意,我並不關心安全或類似的事情。

澄清 -問題是至關重要的:如何將文件從服務器傳送到服務器/從手機傳送到服務器/從服務器傳送文件?假設所有其他事情都已處理 - 應用程序已啓動並正在運行,並且用戶已給予或將授予他可能允許的所有可能事件的權限。

回答

4

不幸的是,推送通知(包括HTTP標頭)的總大小爲1KB。這意味着它不能用於發送大量數據。

而不是發送整個文件,發送通知(原材料或烤麪包,適當的)應該由應用程序被視爲觸發去獲取新的文件/數據/無論從服務器。當你的應用程序啓動時,也許值得檢查新消息。但是,如果您啓動應用程序,它將通知服務器它已準備好接收原始通知,並且會發送此類消息指示新內容可用,因此可能不需要添加此額外支票。

要向手機傳輸文件或從手機傳輸文件,您需要使用HttpWebRequestWebClient,因爲這是在設備上使用HTTP的唯一方式,而HTTP是當前可用於傳輸數據的唯一協議。

雖然WebClient看起來比HttpWebRequest更容易使用,但它不夠靈活,會自動在UI線程上執行它的回調,並且如果您在後臺下載文件,您幾乎肯定不希望這樣做。

有沒有辦法將文件從PC conencted轉移到/並讓他們獨家提供給您的應用程序。

+0

我缺少的部分是如何在應用程序打開時收到文件(已收到通知) – s0li 2011-02-23 17:30:35

+0

@ s0li根據您的意見擴展答案。希望這可以幫助。 – 2011-02-25 13:01:02

0

首先:你將不能夠自動執行此方法 - 用戶必須打開你的應用程序做,因爲WP7 SDK不允許你的應用程序在後臺運行/一次推自動啓動收到通知。

在時間與您的服務器進行通信,在這一點的唯一方法,就是Web服務。如果我是你,我會在應用程序啓動後檢查可用的新信息,如果有新信息,我會調用一個或多個Web服務,它將返回我需要的所有信息。 如果需要,您可以使用定時器定期檢查信息。

正如我所說的,它只會在你的應用程序運行的時候工作(如果你還不知道它,請檢查應用程序的生命週期),WP7不允許應用程序在後臺運行,這是一個嚴重的限制恕我直言。

好運, 奧斯卡

+0

如何使用Web服務交換文件?這基本上是我的問題... – s0li 2011-02-23 17:24:00

+0

我沒看過,但這個鏈接看起來很有幫助:http://www.zdnetasia.com/create-a-simple-file-transfer-web-service-with-net- 39251815.htm :) – JSBach 2011-02-24 10:46:51

0

也許有點題外話,但我在想我的WP7應用程序的文件共享,我發現了兩個方法:

  1. 整合與Dropbox
  2. 一個應用程序使用advanced explorer for WP7
相關問題