我正在构建一套依赖彼此数据的应用程序。 我想把这个共享的数据存储库放在文档库文件夹中。Windows 8商店:拒绝DocumentationLibrary认证期间访问
然而,当我试图将应用程序提交到Windows 8商店,我被拒绝访问该文件夹的位置。
我有一个不符合DocumentLibrary访问权限的开发者帐户。 有人告诉我,因为我不是公司,所以我没有资格申请公司账户。
离线时如何与其他应用程序共享应用程序数据?
我正在构建一套依赖彼此数据的应用程序。 我想把这个共享的数据存储库放在文档库文件夹中。Windows 8商店:拒绝DocumentationLibrary认证期间访问
然而,当我试图将应用程序提交到Windows 8商店,我被拒绝访问该文件夹的位置。
我有一个不符合DocumentLibrary访问权限的开发者帐户。 有人告诉我,因为我不是公司,所以我没有资格申请公司账户。
离线时如何与其他应用程序共享应用程序数据?
的Windows Store应用程序可以在沙盒环境中运行,相互隔离的,因此,它们不能容易地共享他们的数据。
如果有一个自定义的在线服务,应用程序都可以连接到他们之间共享数据是不够的,那么你就需要用户选择一个文件夹(从两个应用)其中共享的数据将被保存。这样你就可以访问它。
用户初次使用FolderPicker
选择文件夹:
var picker = new FolderPicker();
picker.FileTypeFilter.Add(".sqldb");
var folder = await picker.PickSingleFolderAsync();
然后将文件夹添加到FutureAccessList
,让你保持访问它的应用程序被重新启动后也:
var token = StorageApplicationPermissions.FutureAccessList.Add(folder);
您需要存储token
,这样才能在下次加载它。 LocalSettings
将是一个合适的位置。当您的应用程序再次运行时,您先阅读令牌并用它重新进入选定的文件夹:
var folder = await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(token);
我知道,因为它正确地需要用户干预设置的一切,这不是一个完美的解决方案,但我认为这是使应用程序之间的数据共享成为可能的唯一方法。即便如此,您可能很难用此功能来验证应用程序。
感谢您的指导。 FilePicker是否支持默认路径,以便我可以引导用户使用预期的数据库文件? – 2013-03-20 11:59:08
@ScottNimrod尝试使用['SuggestedStartLocation'(http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.folderpicker.suggestedstartlocation.aspx)财产 – 2013-03-20 12:15:12
感谢您的帮助。 SuggestedStartLocation不保证作为默认工作。恐怕我不能将其标记为答案。这篇文章将把这个问题记录为Windows 8策略失败。 – 2013-03-20 23:34:25
谢谢您的建议。不过,我已经在使用SQLite了。我希望db文件可用于所有其他Windows 8应用程序。将这些数据隔离在应用程序数据文件夹中时,在构建其他客户也需要访问数据的企业解决方案时,并不能解决我的需求。 – 2013-03-20 03:36:41