Xbox One 上的 FileOpenPicker 总是 returns null
FileOpenPicker always returns null on Xbox One
我目前正在完成我的 UWP 应用程序的更新(在 Xbox One 和 Windows 10 上可用),但在测试时,我发现 FileOpenPicker 没有按预期工作:它 returns null 即使选择了一个文件,仅在 Xbox One 上。 (在 Windows 10 上一切正常,返回一个 StorageFile。)
代码如下:
FileOpenPicker picker = new FileOpenPicker // New picker with filters
{
ViewMode = PickerViewMode.Thumbnail,
SuggestedStartLocation = PickerLocationId.Downloads,
FileTypeFilter = { ".zip", ".mcworld", ".mcpack", ".mcaddon" }
};
StorageFile packToImport = await picker.PickSingleFileAsync();
if (packToImport != null)
{
try
{
Importer packImporter = new Importer();
progressPanel.Visibility = Visibility.Visible;
pTxt.Text = "Importing".GetLocalized();
await Task.WhenAll(packImporter.Import(packToImport));
progressPanel.Visibility = Visibility.Collapsed;
pTxt.Text = string.Empty;
}
catch (Exception ex)
{
await MessageHelper.ShowContentBox("Error".GetLocalized(), ex.Message, "OK", "");
}
finally
{
NavigationHelper.ReloadPage(typeof(PacksView));
}
}
如果文件为空,我尝试添加一个 else
,并执行。所以问题不在Import()
之后执行的函数中。
为了增加对发生的奇怪事情的精确度,FileOpenPicker 在旧版本的应用程序中工作(当前在 Microsoft Store 上发布);我在文件选择器代码中没有做任何更改。
编辑:我想澄清的是 UWP Limitations on Xbox One 网站引用了 FolderPicker,但 FilePicker 代替了它。
根据文档:
Folder picker scenarios Scenarios related to folder pickers are not supported on Xbox. See FolderPicker class.
来源:https://docs.microsoft.com/en-us/uwp/extension-sdks/uwp-limitations-on-xbox?redirectedfrom=MSDN
这意味着如果它起作用了,你就很幸运了,你不应该期望它起作用。即使该程序今天可以运行,以后的更新也可能会破坏它。
我设法让它工作了。只需要针对较旧的 Xbox 版本:)
我目前正在完成我的 UWP 应用程序的更新(在 Xbox One 和 Windows 10 上可用),但在测试时,我发现 FileOpenPicker 没有按预期工作:它 returns null 即使选择了一个文件,仅在 Xbox One 上。 (在 Windows 10 上一切正常,返回一个 StorageFile。)
代码如下:
FileOpenPicker picker = new FileOpenPicker // New picker with filters
{
ViewMode = PickerViewMode.Thumbnail,
SuggestedStartLocation = PickerLocationId.Downloads,
FileTypeFilter = { ".zip", ".mcworld", ".mcpack", ".mcaddon" }
};
StorageFile packToImport = await picker.PickSingleFileAsync();
if (packToImport != null)
{
try
{
Importer packImporter = new Importer();
progressPanel.Visibility = Visibility.Visible;
pTxt.Text = "Importing".GetLocalized();
await Task.WhenAll(packImporter.Import(packToImport));
progressPanel.Visibility = Visibility.Collapsed;
pTxt.Text = string.Empty;
}
catch (Exception ex)
{
await MessageHelper.ShowContentBox("Error".GetLocalized(), ex.Message, "OK", "");
}
finally
{
NavigationHelper.ReloadPage(typeof(PacksView));
}
}
如果文件为空,我尝试添加一个 else
,并执行。所以问题不在Import()
之后执行的函数中。
为了增加对发生的奇怪事情的精确度,FileOpenPicker 在旧版本的应用程序中工作(当前在 Microsoft Store 上发布);我在文件选择器代码中没有做任何更改。
编辑:我想澄清的是 UWP Limitations on Xbox One 网站引用了 FolderPicker,但 FilePicker 代替了它。
根据文档:
Folder picker scenarios Scenarios related to folder pickers are not supported on Xbox. See FolderPicker class.
来源:https://docs.microsoft.com/en-us/uwp/extension-sdks/uwp-limitations-on-xbox?redirectedfrom=MSDN
这意味着如果它起作用了,你就很幸运了,你不应该期望它起作用。即使该程序今天可以运行,以后的更新也可能会破坏它。
我设法让它工作了。只需要针对较旧的 Xbox 版本:)