Скачать и запустить приложение по умолчанию в 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

Другие вопросы по тегам