2013-03-20 101 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