82 lines
3.1 KiB
Plaintext
82 lines
3.1 KiB
Plaintext
page.title=Sharing Files
|
|
page.tags=FileProvider,share,ContentProvider
|
|
|
|
trainingnavtop=true
|
|
startpage=true
|
|
|
|
|
|
@jd:body
|
|
|
|
<div id="tb-wrapper">
|
|
<div id="tb">
|
|
|
|
<h2>Dependencies and prerequisites</h2>
|
|
<ul>
|
|
<li>Android 1.6 (API Level 4) or higher</li>
|
|
<li>Familiarity with file operations such as opening, reading, and writing files</li>
|
|
</ul>
|
|
|
|
<h2>You should also read</h2>
|
|
<ul>
|
|
<li><a href="{@docRoot}guide/topics/data/data-storage.html">Storage Options</a></li>
|
|
<li><a href="{@docRoot}training/basics/data-storage/files.html">Saving Files</a>
|
|
<li><a href="{@docRoot}training/sharing/index.html">Sharing Simple Data</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<p>
|
|
Apps often have a need to offer one or more of their files to another app. For example, an image
|
|
gallery may want to offer files to image editors, or a file management app may want to allow
|
|
users to copy and paste files between areas in external storage. One way a sending app can
|
|
share a file is to respond to a request from the receiving app.
|
|
</p>
|
|
<p>
|
|
In all cases, the only secure way to offer a file from your app to another app is to send the
|
|
receiving app the file's content URI and grant temporary access permissions to that URI.
|
|
Content URIs with temporary URI access permissions are secure because they apply only to the
|
|
app that receives the URI, and they expire automatically. The Android
|
|
{@link android.support.v4.content.FileProvider} component provides the method
|
|
{@link android.support.v4.content.FileProvider#getUriForFile getUriForFile()} for
|
|
generating a file's content URI.
|
|
</p>
|
|
<p>
|
|
If you want to share small amounts of text or numeric data between apps, you should send an
|
|
{@link android.content.Intent} that contains the data. To learn how to send simple data with an
|
|
{@link android.content.Intent}, see the training class
|
|
<a href="{@docRoot}training/sharing/index.html">Sharing Simple Data</a>.
|
|
</p>
|
|
<p>
|
|
This class explains how to securely share files from your app to another app using content URIs
|
|
generated by the Android {@link android.support.v4.content.FileProvider} component and
|
|
temporary permissions that you grant to the receiving app for the content URI.
|
|
</p>
|
|
<h2>Lessons</h2>
|
|
<dl>
|
|
<dt><b><a href="setup-sharing.html">Setting Up File Sharing</a></b></dt>
|
|
<dd>
|
|
Learn how to set up your app to share files.
|
|
</dd>
|
|
<dt><b><a href="share-file.html">Sharing a File</a></b></dt>
|
|
<dd>
|
|
Learn how to offer a file to another app by generating a content URI for the file,
|
|
granting access permissions to the URI, and sending the URI to the app.
|
|
</dd>
|
|
<dt><b><a href="request-file.html">Requesting a Shared File</a></b></dt>
|
|
<dd>
|
|
Learn how to request a file shared by another app, receive the content URI for the file,
|
|
and use the content URI to open the file.
|
|
</dd>
|
|
<dt>
|
|
<b><a href="retrieve-info.html">Retrieving File Information</a></b>
|
|
</dt>
|
|
<dd>
|
|
Learn how an app can use a content URI generated by a
|
|
{@link android.support.v4.content.FileProvider} to retrieve file information including
|
|
MIME type and file size.
|
|
</dd>
|
|
</dl>
|
|
|
|
|