J'essaie d'utiliser l'API FileOpenPicker en la démarrant à partir d'une vignette épinglée dans Windows Phone 8.1.FileOpenPicker renvoie l'exception d'accès refusé lors du démarrage à partir d'une mosaïque plutôt que d'un bouton dans l'application Windows Phone 8.1
La vignette contient une commande pour laquelle l'application doit démarrer FileOpenPicker lorsqu'elle est lancée à partir de cette vignette. Dans ce cas, l'API FileOpenPicker lève une exception E_ACCESSDENIED. Lorsque vous appelez le même code à partir d'un bouton dans l'application, il ne plante pas. Donc, les capacités définies pour l'application sont correctes, il semble que l'environnement dans lequel FileOpenPicker est appelé n'est pas le même.
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();
La dernière ligne est ce qui se bloque lors du démarrage de la tuile. Les deux scénarios l'appellent dans MainPage, après sa construction. La tuile appelle comme ça, de 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);
//}
}
J'ai essayé aussi la partie else (commentée) et appelant la méthode TakePicture() dans MainPage.NavigatedTo() au lieu , mais la même chose arrive.
Quel pourrait être le problème?
Merci pour l'entrée, SebD, mais Studio dit: "avertissement CS0618: 'FileOpenPicker.PickSingleFileAsync()' est obsolète: 'PickSingleFileAsync sera indisponible pour Windows Phone 8.1. Utilisez plutôt PickSingleFileAndContinue'". – robcsi