Windows Phone 8 SD卡上的只读数据库

时间:2013-11-07 02:55:12

标签: database sqlite map windows-phone-8

是否可以从SD卡上预定位置保存的某种形式的数据库文件中读取数据(只读)?

我想允许我的地图应用的用户下载地图图块以供离线使用。将它存储为单个文件会更方便,因此认为数据库是最好的。该文件的大小可能大约为8 GB,包含100,000个PNG平铺图像。用户可能会从网上下载此文件并将其保存到SD卡中。

我认为如果可能的话,SQLite将是最佳选择。

任何人都知道的任何限制?我一直在使用Windows Phone开发限制(无法从应用程序保存到SD卡,无法将文件附加到电子邮件任务等),所以我想在尝试这个时间之前先问一下。

2 个答案:

答案 0 :(得分:0)

是的,您可以通过定义应用可以打开的特定文件后缀,在Windows Phone 8上使用所谓的“文件类型关联”。您可以通过电话,SD卡甚至电子邮件附件打开任何文件(只读!)。我想一旦你阅读了这个文件,就可以将它复制到应用程序IsolatedStorage,以便以后安全地访问 有关详细信息,请参阅此处:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206987(v=vs.105).aspx

答案 1 :(得分:0)

目前,使用现有的数据库解决方案无法/易于从SD卡读取...

不幸的是,我遇到的数据库没有实现接受ExternalStorageDevice或Stream(使用ExternalStorageDevice.GetFileAsync()提供)作为数据库源的接口。大多数人想要一个文件路径,然后与标准的System.IO方法一起使用,这些方法被Windows Phone阻止访问SD卡。

我还尝试调整适应各种库,但Windows Phone本身存在一个错误,从ExternalStorageDevice.GetFileAsync()返回的流不能正确地从文件的第一部分查找。有关详细信息,请参阅this question