ファイルの共有
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
多くの場合、アプリでは 1 つ以上のファイルを別のアプリに提供する必要があります。たとえば、画像ギャラリーで画像エディタにファイルを提供する場合や、ファイル管理アプリでユーザーが外部ストレージの領域間でファイルをコピーして貼り付けられるようにする場合などです。送信側アプリがファイルを共有する方法の一つとして、受信側アプリからのリクエストに応答する方法があります。
いずれの場合も、アプリから別のアプリにファイルを提供する安全な方法は、受信側のアプリにファイルのコンテンツ URI を送信し、その URI に一時的なアクセス権限を付与することです。
一時的な URI アクセス権限のあるコンテンツ URI は、URI を受け取るアプリにのみ適用され、自動的に期限切れになるため、安全です。Android の FileProvider
コンポーネントには、ファイルのコンテンツ URI を生成するためのメソッド getUriForFile()
が用意されています。
少量のテキストまたは数値データをアプリ間で共有する場合は、そのデータを含む Intent
を送信する必要があります。Intent
を使用してシンプルなデータを送信する方法については、トレーニング クラスのシンプルなデータの共有をご覧ください。
このクラスでは、Android FileProvider
コンポーネントによって生成されたコンテンツ URI と、受信側アプリに付与したコンテンツ URI の一時的な権限を使用して、アプリから別のアプリにファイルを安全に共有する方法について説明します。
レッスン
- ファイル共有のセットアップ
-
ファイルを共有するようにアプリを設定する方法について学びます。
- ファイルの共有
- ファイルのコンテンツ URI を生成し、URI にアクセス権限を付与して、URI をアプリに送信することで、別のアプリにファイルを提供する方法を学習します。
- 共有ファイルのリクエスト
-
別のアプリで共有されているファイルをリクエストし、ファイルのコンテンツ URI を受信して、コンテンツ URI を使用してファイルを開く方法を学習します。
-
ファイル情報の取得
FileProvider
で生成されたコンテンツ URI を使用して、アプリが MIME タイプやファイルサイズなどのファイル情報を取得する方法について学習します。
その他の関連情報については、以下をご覧ください。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-02-15 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-02-15 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-02-15 UTC。"]]