アプリでは通常、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 タイプやファイルサイズなどのファイル情報を取得するかを学習します。
その他の関連情報については、以下をご覧ください。