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

Windows phone 8 如何从托管代码在skydrive上打开和保存文件(带文件选择),windows-phone-8,Windows Phone 8,让用户从用c#编写的windows phone 8应用程序中选择SkyDrive上的保存或打开位置的正确/推荐方法是什么 我尝试过Windows 8应用程序中的应用程序,但是它似乎只适用于C++(非托管),如果我看到了它,它只支持多媒体文件 从MSDN: Windows Phone 8 此API仅在本机应用程序中受支持。查看包含SkyDrive API的Microsoft Live SDK: 您可以从这里下载并安装它:与Win8不同,WP8中没有允许访问SkyDrive的内置机制。WP8中的Fi

让用户从用c#编写的windows phone 8应用程序中选择SkyDrive上的保存或打开位置的正确/推荐方法是什么

我尝试过Windows 8应用程序中的应用程序,但是它似乎只适用于C++(非托管),如果我看到了它,它只支持多媒体文件

从MSDN: Windows Phone 8

此API仅在本机应用程序中受支持。

查看包含SkyDrive API的Microsoft Live SDK:


您可以从这里下载并安装它:

与Win8不同,WP8中没有允许访问SkyDrive的内置机制。WP8中的FilePicker类在本机应用程序中被重载,因为它们无法访问托管API。WP8中不存在与Win8的文件选择器具有相同意义的文件选择器。特别是用于替换托管PhotoChooserTask,因为它仅对托管应用程序可用

如果您想访问SkyDrive,可以使用SkyDrive的REST服务或其周围的包装器(特别是。例如,下面是Live SDK登录按钮和处理登录:

<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;
    }
}

私有void btnSignin_SessionChanged(对象发送方,liveconnectsessionchangedventargs e)
{
if(e.Status==LiveConnectSessionStatus.Connected)
{
会话=e.会话;
客户端=新的LiveConnectClient(会话);
infoTextBlock.Text=“已登录。”;
}
其他的
{
infoTextBlock.Text=“未登录。”;
client=null;
}
}

但是,因为这些是第三方API和SDK,用户必须在应用程序中使用用户名和密码进行身份验证。这是非常糟糕的,因为这基本上让你可以自由支配用户的私人数据到SkyDrive。更不用说通过实时身份验证完全控制其他一切。因此,除非SkyDrive是大多数应用程序的核心功能,否则大多数应用程序都倾向于避免访问SkyDrive。

+1谢谢你的好答案,尽管这对我们来说是个坏消息。