我正在構建一套依賴彼此數據的應用程序。 我想把這個共享的數據存儲庫放在文檔庫文件夾中。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