3

我正在尝试为 windows phone 7 编写最基本的应用程序,并希望能够将文件(特别是 XML,以防发生任何更改)发送到我的应用程序。目前我有一个 WCF 服务设置,所以我可以通过它发送推送通知。问题是我可以通过推送通知发送的原始数据量是有限制的。

我的解决方案是发送初始推送通知(平铺或原始)以提醒我的应用程序我想向它发送文件,然后使应用程序以某种方式与服务器通信(顺便说一句,一切都在我的个人计算机上 - 我'我只是想弄清楚事情是如何工作的)-应用程序将从那里接收/下载文件。

实现这一目标的最简单方法是什么?请注意,我不关心安全性或类似的事情。

澄清 -问题很重要:我如何将文件从/从服务器传输到/从手机传输?假设其他所有事情都已处理 - 应用程序已启动并正在运行,并且用户已授予或将授予他可能授予权限的所有可能的事情。

4

4 回答 4

4

不幸的是,推送通知(包括 HTTP 标头)的总大小为 1kb。这意味着它不能用于发送大量数据。

与其发送整个文件,不如发送一个通知(原始或 toast - 视情况而定),应用程序应将其视为触发器,以便从服务器检索新文件/数据/任何内容。当您的应用程序启动时,检查新消息可能也是值得的。但是,如果当您启动应用程序时,它会通知服务器它已准备好接收原始通知,并且将发送此类消息以指示新内容可用,则可能没有必要添加此额外检查。

要向/从手机传输文件,您需要使用HttpWebRequestWebClient,因为这是在设备上使用 HTTP 的唯一方法,而 HTTP 是当前唯一可用于传输数据的协议。

虽然WebClient可能看起来更容易使用,HttpWebRequest但它的灵活性较低,并且会在 UI 线程上自动执行回调,如果您在后台下载文件,您几乎肯定不希望这样做。

无法将文件传输到连接的 PC 或从连接的 PC 传输文件并让它们专供您的应用程序使用。

于 2011-02-23T13:22:53.883 回答
0

首先:您将无法自动执行此方法 - 用户必须打开您的应用程序才能执行此操作,因为 WP7 SDK 不允许您的应用程序在后台运行/收到推送通知后自动启动。

目前,与您的服务器通信的唯一方法是 Web 服务。如果我是你,我会在应用程序启动后检查可用的新信息,如果有新信息,我会调用一个或多个 Web 服务,它会返回我需要的所有信息。如果需要,您可以使用计时器定期检查信息。

正如我所说,它只会在您的应用程序运行时工作(如果您还不知道,请检查应用程序生命周期),WP7 不允许应用程序在后台运行,恕我直言,这是一个严重的限制。

祝你好运,奥斯卡

于 2011-02-23T13:22:36.170 回答
0

也许有点跑题了,但是当我考虑在我的 WP7 应用程序中共享文件时,我发现了两种方法:

  1. 将应用与Dropbox集成
  2. 使用WP7 的高级资源管理器
于 2011-02-23T16:20:31.820 回答
0

您可以使用WebClient类和 DownloadStringAsync 方法从 Web 服务下载数据。一个很好的例子是来自 MIX10 的 Scott Guthrie 的 Twitter 应用程序

乔治

于 2011-02-23T20:24:12.507 回答