Windows 8 Store:在认证期间拒绝DocumentsLibrary访问

时间:2013-03-20 01:52:56

标签: windows-8 microsoft-metro windows-runtime winrt-xaml

我正在构建一套依赖彼此数据的应用程序。 我想把这个共享数据存储库放在Documents库文件夹中。

但是,当我尝试将应用程序提交到Windows 8商店时,我被拒绝访问该文件夹位置。

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

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

2 个答案:

答案 0 :(得分:0)

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

如果需要离线,则一个选项是SQLLite。查看蒂姆的帖子here

如果在线就足够了,Windows Azure移动服务非常适合放弃快速简便的数据库后端。更多细节here

答案 1 :(得分:0)

Windows应用商店应用在沙盒环境中运行,彼此隔离,因此无法轻松共享数据。

如果拥有两个应用可以连接到的用于在它们之间共享数据的自定义在线服务是不够的,那么您将需要用户选择将存储共享数据的文件夹(来自两个应用)。通过这种方式,您将能够访问它。

首先使用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);

我知道这不是一个完美的解决方案,因为它需要用户干预来正确设置所有内容,但我认为这是在应用程序之间进行此类数据共享的唯一方法。即使这样,您也可能很难通过此功能来验证应用程序。