« 起動優先順位 | メイン | Android 版はファイル名の大文字小文字を区別するように »
2016年12月09日
吉里吉里Z 開発:: ファイル選択とSD保存
Tweet @jin1016をフォローAndroid でのアプリからの SD 保存は、4.3 まではできたけど、4.4 で禁止(毎回ユーザー認証)、5.0 以降ユーザーのフォルダ許可で可能と言うのがざっくりとした流れ。
また、SD がマウントされているディレクトリを得る統一された方法はなく、機種依存で何パターンかある。
Google の Nexus シリーズは SD 対応しておらず、あまり認めたくないようだけど、需要あるので渋々と言う印象がある。
吉里吉里Z の Android 版は、4.2 以降を想定しているが、4.2/4.3 のために 機種依存の SD マウント場所を得るのを何パターンか実装するのは労力に見合っていないように思う。
そこで外部ストレージのアプリデータ保存場所として得られるディレクトリにデータ保存するのを基本としつつ、5.0 以降用にユーザーがフォルダ選択して、そこにファイル生成や保存ができるようにするのが妥当だろう。
フォルダ選択は、ストレージ アクセス フレームワーク(SAF) と言う仕組みを利用する。
SAF はファイルアクセスを抽象化し、DocumentsProvider と言うプラグインのようなもの(アプリとして提供される)を追加することで、様々な場所へのファイルアクセスを可能にする。
デフォルトでは、端末のストレージと GoogleDrive が利用できる。
つまり、5.0 以降であれば GoogleDrive にセーブデータを保存して PC と共有するといったこともやりやすい。
( SAF は 4.4 から対応されているが、4.4はファイル単位での選択なので毎回選択の必要があり使い勝手が悪い )
仕様を整理すると――
・保存場所のデフォルトは、外部ストレージアプリデータ保存場所。
・4.4 以降でファイル選択機能使用可能。
・5.0 以降でフォルダ選択機能使用可能。
となる。
投稿者 Takenori : 2016年12月09日 03:05
comments powered by Disqus