ピッカーなんかで選択したパスを次の起動時に扱いたいと言う話
結論を言うとパスを保存してもそれからファイル/フォルダを開く方法が無いので無理
代わりに
ファイルを表すWindows.Storage.StorageFile
フォルダを表すWindows.Storage.StorageFolder
で書込読込する
ピッカーで取得出来るものもこれ
方法
読込
var ファイル =
await StorageApplicationPermissions.FutureAccessList.GetFileAsync("ファイルトークン")
var フォルダ =
await StorageApplicationPermissions.FutureAccessList.GetFolderAsync("フォルダトークン")
書込
StorageApplicationPermissions.FutureAccessList.AddOrReplace(
"ファイル/フォルダ トークン", ファイル/フォルダ, "");
名前空間はWindows.Storage.AccessCache.StorageApplicationPermissions
トークンは読込と書込が一致していればいいのでStorageFile/Folderのメンバをnameof()すると良
ただしMSはStorageApplicationPermissions.FutureAccessList.Addで帰ってくるトークン使用を推奨している模様
参考資料
http://www.atmarkit.co.jp/ait/articles/1308/08/news071.html
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.storage.accesscache.storageapplicationpermissions
UWPで備忘録
UWPアプリの落とし穴にハマった所を対処法と共に上げていく
2016年2月20日土曜日
2015年12月10日木曜日
コンパイル時ILT0005が発生する +2016/03/06追記
原因
プロジェクトのパスにASCII文字以外の文字が入っている、特にユーザー名
.Net NativeがASCII文字にしか対応していないからのようだ
解決方法
解決方法は二つ
パスをASCII文字のみにする
.Net Nativeを使用しない
プロジェクトのプロパティ→ビルド→.Net ネイティブ ツール チェーンでコンパイルする のチェックを外す
.Net Nativeについてはここが分かりやすかった
https://ufcpp.wordpress.com/2014/04/03/net-native/
2016/03/06 追記
.Net Nativeの文字コード対応したみたいです。使用できることを確認できました
プロジェクトのパスにASCII文字以外の文字が入っている、特にユーザー名
.Net NativeがASCII文字にしか対応していないからのようだ
解決方法
解決方法は二つ
パスをASCII文字のみにする
.Net Nativeを使用しない
プロジェクトのプロパティ→ビルド→.Net ネイティブ ツール チェーンでコンパイルする のチェックを外す
.Net Nativeについてはここが分かりやすかった
https://ufcpp.wordpress.com/2014/04/03/net-native/
2016/03/06 追記
.Net Nativeの文字コード対応したみたいです。使用できることを確認できました
2015年11月19日木曜日
メモ:最小化した際の動作
最小化して時間を置いた後アクティブ化するとWindows.UI.Xaml.Controls.Pageが開き直される
通常意識する必要はないが場合によってはバグの元になる可能性があるので注意
通常意識する必要はないが場合によってはバグの元になる可能性があるので注意
2015年11月8日日曜日
Windows.UI.Xaml.Controls.MediaElementを使用して再生した時、最小化すると再生停止する
原因
元々の仕様
解決方法
MediaElement.AudioCategoryに
元々の仕様
解決方法
MediaElement.AudioCategoryに
BackgroundCapableMediaを指定した後
どこでもいいので以下のコードを書く
var smtc = Windows.Media.SystemMediaTransportControls.GetForCurrentView();
smtc
.IsPlayEnabled = true;
smtc
.IsPauseEnabled = true;
smtc
.IsStopEnabled = true;
最後にマニフェストでバックグラウンドタスクをオーディオで宣言する
ただしこの方法ではモバイルデバイスで停止してしまうかも
詳細はこちら
http://stackoverflow.com/questions/28185424/windows-store-apps-playing-background-audio-with-mediaelement参考資料
https://msdn.microsoft.com/ja-jp/library/windows/apps/windows.ui.xaml.controls.mediaelement.audiocategory
2015年10月25日日曜日
Windows.UI.Xaml.Controls.Flame.Navigateが重い
原因
Windows.UI.Xaml.Controls.PageはNavigateされると毎回インスタンスを生成するため。
(私の環境だと250ミリ秒前後かかっていた)
対処
PageのNavigationCacheModeをRequiredもしくはEnabledを指定する。
Pageをキャッシュするようになる為インスタンス生成が発生せず解決する。
Windows.UI.Xaml.Controls.PageはNavigateされると毎回インスタンスを生成するため。
(私の環境だと250ミリ秒前後かかっていた)
対処
PageのNavigationCacheModeをRequiredもしくはEnabledを指定する。
Pageをキャッシュするようになる為インスタンス生成が発生せず解決する。
登録:
投稿 (Atom)