MRが楽しい

MRやVRについて学習したことを書き残す

hololensアプリでXML設定ファイルの操作を行う その4(ドキュメントフォルダへのアクセス)

本日は HoloLens の技術調査枠です。
以前、HoloLens での設定ファイル読み書きでカメラロールへのアクセスを行いました。。
bluebirdofoz.hatenablog.com

今回はカメラロールではなく、ドキュメントフォルダへアクセスしてみます。
まず前回作成したスクリプトディレクトリ参照をKnownFolders.DocumentsLibraryに切り替えます。
・AppSettingManager.cs

/// <summary>
/// アプリ設定ディレクトリパス
/// 実行環境によって参照ディレクトリを変更する
/// </summary>
private string SettingFileDirectoryPath()
{
    string directorypath = "";
#if WINDOWS_UWP
    // HoloLens上での動作の場合、LocalAppData/AppName/LocalStateフォルダを参照する
    // directorypath = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
    // ↓
    // HoloLens上での動作の場合、カメラロールを参照する
    // directorypath = Windows.Storage.KnownFolders.CameraRoll.Path;
    // ↓
    // HoloLens上での動作の場合、ドキュメントフォルダを参照する
    directorypath = Windows.Storage.KnownFolders.DocumentsLibrary.Path;
#else
    // Unity上での動作の場合、Assets/StreamingAssetsフォルダを参照する
    directorypath = UnityEngine.Application.streamingAssetsPath;
#endif
    return directorypath;
}

ドキュメントフォルダを参照するには権限の設定が必要ですが、Capabilities からは設定できません。
そのままビルドを行い、ソリューションファイルを VisualStudio で開きます。
そこで Package.appxmanifest をコード表示で開き、直接編集します。
f:id:bluebirdofoz:20180226002318j:plain

以下の Capability の設定を追記します。

<Capabilities>
  <uap:Capability Name="documentsLibrary" />
</Capabilities>

f:id:bluebirdofoz:20180226002327j:plain

次に Package.appxmanifest の「宣言」から「ファイルの種類の関連付け」を追加します。
f:id:bluebirdofoz:20180226002336j:plain

そこで書き込むファイルの拡張を追加します。
今回、出力するのは settings.xml ファイルなので、xml を追加します。
f:id:bluebirdofoz:20180226002344j:plain

以上で権限の設定は完了です。
アプリを hololens にインストールして起動します。
f:id:bluebirdofoz:20180226002351j:plain
……が、出力されず。

調べてみると、hololens では DocumentsLibrary の権限はリードオンリーという記事がありました。
qiita.com
上記の方法はUWPアプリ全般の方法であるが、hololens については書き込めないということ?