2013-03-20 107 views
0

我正在构建一套依赖彼此数据的应用程序。 我想把这个共享的数据存储库放在文档库文件夹中。Windows 8商店:拒绝DocumentationLibrary认证期间访问

然而,当我试图将应用程序提交到Windows 8商店,我被拒绝访问该文件夹的位置。

我有一个不符合DocumentLibrary访问权限的开发者帐户。 有人告诉我,因为我不是公司,所以我没有资格申请公司账户。

离线时如何与其他应用程序共享应用程序数据?

回答

0

是,一个公司/个人账户之间的差异是进入文档库(差异完整列表here)。

如果脱机是需求,则一个选项是SQLLite。请参阅Tim的帖子here

如果网上是足够的,Windows Azure的移动服务是扔了一个快速简便的数据库后端相当真棒。更多详情here

+0

谢谢您的建议。不过,我已经在使用SQLite了。我希望db文件可用于所有其他Windows 8应用程序。将这些数据隔离在应用程序数据文件夹中时,在构建其他客户也需要访问数据的企业解决方案时,并不能解决我的需求。 – 2013-03-20 03:36:41

0

的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); 

我知道,因为它正确地需要用户干预设置的一切,这不是一个完美的解决方案,但我认为这是使应用程序之间的数据共享成为可能的唯一方法。即便如此,您可能很难用此功能来验证应用程序。

+0

感谢您的指导。 FilePicker是否支持默认路径,以便我可以引导用户使用预期的数据库文件? – 2013-03-20 11:59:08

+0

@ScottNimrod尝试使用['SuggestedStartLocation'(http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.pickers.folderpicker.suggestedstartlocation.aspx)财产 – 2013-03-20 12:15:12

+0

感谢您的帮助。 SuggestedStartLocation不保证作为默认工作。恐怕我不能将其标记为答案。这篇文章将把这个问题记录为Windows 8策略失败。 – 2013-03-20 23:34:25