如何从托管代码打开和保存skydrive上的文件(带文件选择)

时间:2012-12-28 12:06:50

标签: windows-phone-8

让用户从使用c#编写的Windows Phone 8应用程序在SkyDrive上选择保存或开放位置的正确/推荐方法是什么?

我已尝试使用{8},因为它在Windows 8应用程序中使用,但似乎只能使用C ++(非托管),如果我看到正确,它只支持多媒体文件

来自MSDN: Windows Phone 8
此API仅在本机应用中受支持。

2 个答案:

答案 0 :(得分:5)

与Win8不同,WP8中没有允许访问SkyDrive的内置机制。 WP8中的FilePicker类已在本机应用程序中过载,因为它们无法访问托管API。在WP8中不存在与Win8的FilePicker相同的FilePicker。具体来说,WP8's FilePicker用于替换托管的PhotoChooserTask,因为它仅适用于托管应用。

如果您想访问SkyDrive,您可以使用SkyDrive的REST服务或其周围的包装(特别是Live SDK)。例如,这里是Live SDK SigninButton并处理登录:

<live:SignInButton x:Name="btnSignin" Scopes="wl.signin wl.basic" SessionChanged="btnSignin_SessionChanged" />

private void btnSignin_SessionChanged(object sender, LiveConnectSessionChangedEventArgs e)
{
    if (e.Status == LiveConnectSessionStatus.Connected)
    {
        session = e.Session;
        client = new LiveConnectClient(session);
        infoTextBlock.Text = "Signed in.";
    }
    else
    {
        infoTextBlock.Text = "Not signed in.";
        client = null;
    }
}

然而,因为这些是第三方API&amp;用户必须使用应用内的用户名和密码进行身份验证的SDK。这非常糟糕,因为这基本上可以让您免费将用户的私人数据统治到SkyDrive。更不用说完全控制由Live身份验证支持的所有其他内容。因此大多数应用程序都倾向于避免SkyDrive访问,除非它是它们的核心功能。

答案 1 :(得分:3)

查看包含SkyDrive API的Microsoft Live SDK:http://msdn.microsoft.com/en-us/library/live/hh826521.aspx

您可以从此处下载并安装它:http://www.microsoft.com/en-us/download/details.aspx?id=35754