Я пытаюсь использовать API FileOpenPicker, запустив его из закрепленной плитки в Windows Phone 8.1.FileOpenPicker бросает доступ к запрещенному исключению при запуске его из плитки, а не в приложении Windows Phone 8.1
У плитки есть команда, содержащаяся в ней, для которой приложение запускает FileOpenPicker при запуске с этой плитки. В этом случае API FileOpenPicker генерирует исключение E_ACCESSDENIED. При вызове того же кода с кнопки в приложении он не падает. Таким образом, возможности, установленные для приложения, в порядке, просто кажется, что среда, которую вызывает FileOpenPicker, не то же самое.
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
openPicker.PickSingleFileAndContinue();
Последняя строка это то, что происходит сбой при запуске из плитки. Оба сценария называют это внутри MainPage после его построения. Плитку называют это так, от App.xaml.cs/OnLaunched():
if (!e.TileId.Equals("App"))
{
var mainPage = rootFrame.Content as Views.MainPage;
if (mainPage != null)
{
string command = e.Arguments;
if (!string.IsNullOrWhiteSpace(command) && command.Equals(Utils.TileCommand))
{
mainPage.TakePicture();
}
}
//else
//{
// rootFrame.Navigate(typeof(Views.MainPage), e.Arguments);
//}
}
Я также попробовал еще часть (закомментирована) и вызов метода TakePicture() в MainPage.NavigatedTo() вместо , но то же самое происходит.
В чем может быть проблема?
Спасибо за ввод, SebD, но Studio говорит: «warning CS0618:« FileOpenPicker.PickSingleFileAsync() »устарел:« PickSingleFileAsync будет недоступен для Windows Phone 8.1, вместо этого используйте PickSingleFileAndContinue ». – robcsi