本日は 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 をコード表示で開き、直接編集します。
以下の Capability の設定を追記します。
<Capabilities> <uap:Capability Name="documentsLibrary" /> </Capabilities>
次に Package.appxmanifest の「宣言」から「ファイルの種類の関連付け」を追加します。
そこで書き込むファイルの拡張を追加します。
今回、出力するのは settings.xml ファイルなので、xml を追加します。
以上で権限の設定は完了です。
アプリを hololens にインストールして起動します。
……が、出力されず。
調べてみると、hololens では DocumentsLibrary の権限はリードオンリーという記事がありました。
qiita.com
上記の方法はUWPアプリ全般の方法であるが、hololens については書き込めないということ?