Android 5.0では“document provider”という新たな概念のプログラムが導入されました。これらのプログラムはアセットマネージャーとUnixファイルシステムから独立した、プログラム独自のファイルへのアクセスを提供する小さなサービスです。これらのプログラムが提供するファイルやディレクトリーを/content/storageディレクトリーに配置することによって、Emacsはそれらにたいするアクセスをサポートしています。
これらのディレクトリーのいずれかへのアクセスが付与される前に、まずはEmacsがアクセスする権限を要求しなければなりません。これはコマンドandroid-request-directory-access
を実行(名前を指定してコマンドを実行するを参照)することにより達成されます。このコマンドによってファイル選択ダイアログを表示されます。
このダイアログからディレクトリーを選択すると、/content/storage/authority/idという新たなディレクトリーでディレクトリー内のファイルが利用可能になります(authorityはドキュメントプロバイダー名、idはドキュメントプロバイダーがディレクトリーに割り当てる一意な識別子)。
このようなディレクトリーは、不要になればコマンドandroid-relinquish-directory-access
に名前を与えて削除できます。
これらのディレクトリーでサブプロセスを作成する際には、/assetsディレクトリー(AndroidでEmacsがアクセスできるファイルを参照)に課せられるのと同じ制限が適用されます(Unixファイルシステムには存在しないため)。これらのディレクトリーではEmacsが通常通り読み取りと書き込みが可能であっても、シンボリックリンクやハードリンクを作成することはできません。
ドキュメントプロバイダーはファイルコンテンツを取得するために高価なネットワーク処理を実行することが許されているので、これらのディレクトリーにあるファイルへのアクセス処理には有意な時間が費やされる可能性があります。