Скачать и запустить приложение по умолчанию в Windows Phone 8 в C#
Я использую Live API для загрузки файлов SkyDrive.
Мой код имеет событие нажатия кнопки загрузки, которое запускает функцию OnDownloadedCompleted.
Функция OnDownloadedCompleted копирует файл в "имя файла".
и вызывает DefaultLaunch(), который берет "имя файла" и пытается запустить его программой по умолчанию в Windows Phone 8.
Когда я выполняю этот код (загруженный файл является файлом OneNote), OneNote открывается и говорит, что файл не может быть открыт.
Может кто-нибудь, пожалуйста, помогите мне проверить этот код?
Большое спасибо!
private void btnDownload_Click(object sender, RoutedEventArgs e)
{
if (App.Current.LiveSession == null)
{
infoTextBlock.Text = "You must sign in first.";
}
else
{
LiveConnectClient client = new LiveConnectClient(App.Current.LiveSession);
client.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(OnDownloadCompleted);
client.DownloadAsync("file_id");
}
}
Код для OnDownloadCompleted является
void OnDownloadCompleted(object sender, LiveDownloadCompletedEventArgs e)
{
if (e.Result != null)
{
var filestream = File.Create(@"filename");
e.Result.Seek(0, SeekOrigin.Begin);
e.Result.CopyTo(filestream);
filestream.Close();
DefaultLaunch();
e.Result.Close();
}
else
{
infoTextBlock.Text = "Error downloading image: " + e.Error.ToString();
}
}
Код для функции запуска по умолчанию:
async void DefaultLaunch()
{
try
{
string imageFile = @"File.one";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);
var success = await Windows.System.Launcher.LaunchFileAsync(file);
if (success)
{}
else
{}
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
Console.WriteLine(e.ToString());
}
}
1 ответ
Попробуйте этот учебник.. http://msdn.microsoft.com/en-us/live/ff519582.aspx.. там дается, как использовать живой SDK в платформе Windows 8