Windows Phone 7 - 如何在应用程序中发送/接收文件?

3
我正在尝试编写最基本的Windows Phone 7应用程序,并希望能够向我的应用程序发送文件(特别是XML文件)。目前,我已经设置了一个WCF服务,以便通过它发送推送通知。问题在于,通过推送通知发送原始数据的数量有限。
我的解决方案是先发送初始推送通知(无论是磁贴还是原始推送通知),以提示我的应用程序我想要向其发送文件,然后使应用程序与服务器进行通信(一切都在我的个人计算机上 - 我只是想弄清楚事情是如何工作的) - 应用程序将从中接收/下载文件。
最简单的方法是什么?请注意,我不关心安全性或其他任何事情。
澄清一下 - 问题本质上是:如何将文件从/到服务器传输到/从手机?假设其他所有事情都已处理 - 应用程序正在运行,用户已经授予或将授予他可能授予的每个可能的权限。
4个回答

4
很遗憾,推送通知的总大小(包括HTTP头)为1kb。这意味着它不能用于发送大量数据。
不要发送整个文件,而是发送一个通知(原始或toast——视情况而定),应该将其视为应用程序检索新文件/数据/任何内容的触发器。当您的应用程序启动时,还可以检查是否有新消息。但是,如果启动应用程序时它将通知服务器准备好接收原始通知,并且此类消息将被发送以指示新内容可用,则可能不需要添加此额外检查。
要将文件传输到/从手机,您需要使用HttpWebRequestWebClient,因为这是在设备上使用HTTP的唯一方式,而HTTP是目前可用于传输数据的唯一协议。
虽然WebClient看起来比HttpWebRequest更容易使用,但它的灵活性较差,并且将自动在UI线程上执行回调,如果在后台下载文件,则几乎肯定不希望出现这种情况。
没有办法将文件传输到/从连接的PC,并使它们专门可供您的应用程序使用。

我不清楚的是应用程序打开后如何传输文件(已接收到通知)。 - solyd
@s0li 根据您的评论扩展了答案。希望这可以帮到您。 - Matt Lacey

0
首先,你无法自动执行此方法 - 用户必须打开您的应用程序才能执行此操作,因为WP7 SDK不允许您的应用程序在接收到推送通知后在后台/自动启动。
目前与服务器通信的唯一方法是Web服务。如果我是你,我会在启动应用程序时检查是否有新信息可用,如果有新信息,我会调用一个或多个Web服务,这些服务将返回我所需的所有信息。如果需要,您可以使用计时器定期检查信息。
正如我所说,它只能在您的应用程序运行时工作(如果您还不了解应用程序生命周期,请查看一下),WP7不允许应用程序在后台运行,这是一个严重的限制。
祝你好运, 奥斯卡

如何使用Web服务交换文件?这基本上是我的问题... - solyd
我没有阅读过它,但这个链接看起来很有帮助:http://www.zdnetasia.com/create-a-simple-file-transfer-web-service-with-net-39251815.htm :) - JSBach

0

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

  1. 将应用程序与Dropbox集成
  2. 使用WP7高级资源管理器

0

我该如何设置一个服务器,以便通过 URI(在我的计算机本地)访问? - solyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接