|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectandroid.content.ContentProvider
android.support.v4.content.FileProvider
public class FileProvider
Provider to support easy sharing of private files between apps. When paired
with features like Context.grantUriPermission(String, Uri, int)
or
Intent.FLAG_GRANT_READ_URI_PERMISSION
, this provider ensures that
receiving apps can always open the underlying file.
Apps should generally avoid sending raw filesystem paths across process
boundaries, since the receiving app may not have the same access as the
sender. Instead, apps should send Uri
backed by a provider like
FileProvider
.
To use this provider, add it to your manifest:
And define one or more filesystem paths your provider should support in an XML resource. This provider will only support files which exist under these defined paths.
Then use getUriForFile(Context, String, File)
at runtime to generate
a Uri
backed by the provider. Since the provider is not exported,
these Uri
can only be accessed by other apps when you explicitly
grant access.
Constructor Summary | |
---|---|
FileProvider()
|
Method Summary | |
---|---|
void |
attachInfo(android.content.Context context,
android.content.pm.ProviderInfo info)
|
int |
delete(android.net.Uri uri,
java.lang.String selection,
java.lang.String[] selectionArgs)
|
java.lang.String |
getType(android.net.Uri uri)
|
static android.net.Uri |
getUriForFile(android.content.Context context,
java.lang.String authority,
java.io.File file)
Return a Uri that provides access to the given File . |
android.net.Uri |
insert(android.net.Uri uri,
android.content.ContentValues values)
|
boolean |
onCreate()
|
android.os.ParcelFileDescriptor |
openFile(android.net.Uri uri,
java.lang.String mode)
|
android.database.Cursor |
query(android.net.Uri uri,
java.lang.String[] projection,
java.lang.String selection,
java.lang.String[] selectionArgs,
java.lang.String sortOrder)
|
int |
update(android.net.Uri uri,
android.content.ContentValues values,
java.lang.String selection,
java.lang.String[] selectionArgs)
|
Methods inherited from class android.content.ContentProvider |
---|
bulkInsert, getContext, getPathPermissions, getReadPermission, getWritePermission, isTemporary, onConfigurationChanged, onLowMemory, openAssetFile, openFileHelper, setPathPermissions, setReadPermission, setWritePermission |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FileProvider()
Method Detail |
---|
public boolean onCreate()
onCreate
in class android.content.ContentProvider
public void attachInfo(android.content.Context context, android.content.pm.ProviderInfo info)
attachInfo
in class android.content.ContentProvider
public static android.net.Uri getUriForFile(android.content.Context context, java.lang.String authority, java.io.File file)
Uri
that provides access to the given File
. The
returned Uri
can be used with features like
Context.grantUriPermission(String, Uri, int)
or
Intent.FLAG_GRANT_READ_URI_PERMISSION
to allow other apps to
access private files. Providers only support files which exist under
filesystem paths defined in their <meta-data>
.
authority
- The authority of a FileProvider
defined as a
<provider>
in your manifest.
java.lang.IllegalArgumentException
- When the given File
is outside
the paths supported by the provider.public android.database.Cursor query(android.net.Uri uri, java.lang.String[] projection, java.lang.String selection, java.lang.String[] selectionArgs, java.lang.String sortOrder)
query
in class android.content.ContentProvider
public java.lang.String getType(android.net.Uri uri)
getType
in class android.content.ContentProvider
public android.net.Uri insert(android.net.Uri uri, android.content.ContentValues values)
insert
in class android.content.ContentProvider
public int update(android.net.Uri uri, android.content.ContentValues values, java.lang.String selection, java.lang.String[] selectionArgs)
update
in class android.content.ContentProvider
public int delete(android.net.Uri uri, java.lang.String selection, java.lang.String[] selectionArgs)
delete
in class android.content.ContentProvider
public android.os.ParcelFileDescriptor openFile(android.net.Uri uri, java.lang.String mode) throws java.io.FileNotFoundException
openFile
in class android.content.ContentProvider
java.io.FileNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |