Windows phone 8 WP8&x2B;将文件上载到Skydrive

Windows phone 8 WP8&x2B;将文件上载到Skydrive,windows-phone-8,onedrive,windows-live,Windows Phone 8,Onedrive,Windows Live,我正在尝试将一个简单的.cer文件上载到SkyDrive。不管我使用的LiveConnectClient方法是什么,都不会发生任何事情。没有编译、运行时或其他异常,我的应用程序从未收到LiveOperationResult。我正在使用仿真器,并且能够登录到MS Live(因此我的internet连接很好)。以下是所用代码的摘录: using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())

我正在尝试将一个简单的.cer文件上载到SkyDrive。不管我使用的
LiveConnectClient方法是什么,都不会发生任何事情。没有编译、运行时或其他异常,我的应用程序从未收到
LiveOperationResult
。我正在使用仿真器,并且能够登录到MS Live(因此我的internet连接很好)。以下是所用代码的摘录:

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
  using(var fileStream = store.OpenFile(certPath, FileMode.Open, FileAccess.Read, FileShare.Read))
  {
    try
    {
      client = new LiveConnectClient(session);
      //LiveOperationResult operationResult = await client.UploadAsync("me/skydrive", certPath, fileStream, OverwriteOption.Overwrite, new System.Threading.CancellationToken(false), null);
      LiveOperationResult res= await client.BackgroundUploadAsync("me/skydrive",
                                                                  new Uri("/shared/transfers/cert.cer", UriKind.Relative),
                                                                  OverwriteOption.Overwrite);
      linkTextBlock.Text = "Done";

如前所述,
TextBlock
从不显示“完成”。如果使用
UploadAsync
BackgroundUploadAsync
方法,则没有区别。

BackgroundUploadAsync使用智能文件上载和下载调度系统。而UploadAsync使用即时HTTP文件上传和下载

通过使用后台文件传输,您同意对上载进行以下限制:

最大上载文件大小

通过蜂窝网络连接-5 MB

使用电池电源通过Wi-Fi连接-20 MB

使用外部电源通过Wi-Fi连接-100 MB

上传和下载队列的最大数量也有限制和其他限制。阅读完整的文档@

所有这些限制都可能导致异步等待等待。尽管这是一种痛苦,但后台文件传输所规定的限制会带来最佳的用户体验(即应用程序关闭时的上传)、最佳电池寿命和最佳蜂窝数据使用率。最终,由您的应用程序决定是使用直接向上的WebRequests(uploadAsync)还是后台文件传输(BackgroundUploadAsync)。

此API是“智能的”,因此它决定如何处理传输。比如说,你有一个类似instagram的应用程序,上面有巨大的图片,你拍了一张10MP的快照,然后分享。它会认为“我现在不想发送,我使用的是手机”,即使您将TransferPreferences设置为允许使用电池和手机。我认为他们设计它时没有区分笔记本电脑应用程序和手机应用程序。祝instagram视频好运。