アプリが 1 つ以上のファイルを別のアプリに提供することはよくあります。たとえば、画像ギャラリーで画像エディタにファイルを提供する場合や、ファイル管理アプリのユーザーが外部ストレージの領域間でファイルをコピーして貼り付ける場合などです。送信側アプリがファイルを共有する方法の 1 つとして、受信側アプリからのリクエストに応答する場合もあります。
すべての状況において、アプリから別のアプリにファイルを安全に提供できる唯一の方法は、受信側アプリにファイルのコンテンツ URI を送信し、その URI への一時的なアクセス許可を付与することです。一時的な URI アクセス許可を付与されたコンテンツ URI は、その URI を受信したアプリにのみ適用され、自動的に期限切れになるため、安全です。Android の FileProvider
コンポーネントには、ファイルのコンテンツ URI を生成するためのメソッド getUriForFile()
が用意されています。
アプリ間で少量のテキストまたは数値データを共有する場合は、データを含む Intent
を送信します。Intent
を使用してシンプルなデータを送信する方法については、シンプルなデータを共有するトレーニング クラスをご覧ください。
このトレーニング クラスでは、Android の FileProvider
コンポーネントにより生成されるコンテンツ URI と、受信側アプリに付与されるコンテンツ URI への一時的なアクセス許可を使用して、アプリ間でファイルを安全に共有する方法について説明します。
レッスン
- ファイル共有のセットアップ
- アプリにファイル共有を設定する方法を学習します。
- ファイルの共有
- ファイルのコンテンツ URI を生成して URI へのアクセス許可を付与し、URI をアプリに送信することにより他のアプリにファイルを提供する方法を学習します。
- 共有ファイルのリクエスト
- 他のアプリによって共有されているファイルをリクエストしてそのファイルのコンテンツ URI を受信し、そのコンテンツ URI を使用してファイルを開く方法を学習します。
- ファイル情報の取得
-
FileProvider
によって生成されたコンテンツ URI をアプリで使用して、MIME タイプやファイルサイズなどのファイル情報を取得する方法を学習します。
その他の関連情報については、以下をご覧ください。