LiveConnectClient.backgroundduploadasync,是不工作时,手机没有连接到usb

本文关键字:连接 usb 手机 backgroundduploadasync 工作 LiveConnectClient | 更新日期: 2023-09-27 17:50:32

我试图在wp8中使用LiveConnectClient.BackgroundUploadAsync,上传一些数据的副本。

她是我的代码:

var progress = new Progress<LiveOperationProgress>();
progress.ProgressChanged += progress_ProgressChanged;
try
{
   LiveOperationResult res = 
        await liveClient.BackgroundUploadAsync(folderID,
              new Uri(@"'shared'transfers'" + backupFile.Name, UriKind.Relative),
              OverwriteOption.Overwrite, new System.Threading.CancellationTokenSource().Token, progress);
   dynamic result = res.Result;
   fileID = result.id;
}
catch (Exception ex)
{
    System.Diagnostics.Debug.WriteLine(ex.Message);
    progress.ProgressChanged -= progress_ProgressChanged;
}

它在模拟器上工作得很好,但是当我在手机上尝试它时,它只在手机通过usb连接到pc时工作,手机连接到wifi。

LiveConnectClient.backgroundduploadasync,是不工作时,手机没有连接到usb

您面临后台传输策略的"问题"。

操作系统对与文件大小、连接速度和设备资源相关的后台传输实施了许多限制。

这意味着当你下载/上传较大的文件时,你需要更改TransferPreferences -例如,如果你想上传一个大于100 Mb的文件,你将能够做到这一点,但只能通过WiFi和手机连接到外部电源。

在你的应用程序中,你应该在开始下载/上传之前检查WiFi连接和电源,然后通知用户他应该(例如)打开WiFi来对如此大的文件进行操作。

您可以选择:

// small files but via 3G and on Battery
liveClient.BackgroundTransferPreferences = BackgroundTransferPreferences.AllowCellularAndBattery;
// larger files via WiFi, on Battery
liveClient.BackgroundTransferPreferences = BackgroundTransferPreferences.AllowBattery;
// huge files but only WiFi and External power
liveClient.BackgroundTransferPreferences = BackgroundTransferPreferences.None;

默认设置是none -所以如果你没有改变它,你的应用程序将等待外部电源和WiFi -这可能就是为什么它通过USB(外部电源)连接时工作的原因。