public class FileContentProvider
extends android.content.ContentProvider
为了让其他应用程序访问属于此应用程序的文件,您必须通过调用此类的 createContentUriForFile() 方法来创建一个引用该文件的“content://”URI。然后,其他应用程序将使用此内容 URI 与此提供器通信,以检索有关该文件的信息并打开其输入流。
如果您不想将应用程序的文件暴露给其他应用程序,则应在“AndroidManifest.xml”文件中将提供器的“exported”属性设置为 false。
应用程序启动时,Android 操作系统会自动创建此类的一个实例。您永远不应该自己创建此类的实例。
构造器和说明 |
---|
FileContentProvider() |
修饰符和类型 | 方法和说明 |
---|---|
静态 android.net.Uri |
createContentUriForFile(android.content.Context 上下文, File 文件)
为给定文件创建一个“content://”URI,使其可通过此提供器供其他应用程序访问。
|
静态 android.net.Uri |
createContentUriForFile(android.content.Context 上下文, String 文件路径)
为给定文件创建一个“content://”URI,使其可通过此提供器供其他应用程序访问。
|
int |
delete(android.net.Uri uri, String 选择条件, String[] 选择参数)
处理来自客户端的删除请求。
|
String |
getType(android.net.Uri uri)
获取给定 URI 引用的文件的 MIME 类型。
|
android.net.Uri |
insert(android.net.Uri uri, android.content.ContentValues 值)
处理来自客户端的插入请求。
|
布尔值 |
onCreate()
如果在“AndroidManifest.xml”文件中注册,则在应用程序启动时调用。
|
android.content.res.AssetFileDescriptor |
openAssetFile(android.net.Uri uri, String 模式)
处理客户端通过文件描述符打开属于此应用程序的文件的请求。
|
android.os.ParcelFileDescriptor |
openFile(android.net.Uri uri, String 模式)
处理客户端打开属于此应用程序的文件的请求。
|
android.database.Cursor |
query(android.net.Uri uri, String[] 投影, String 选择条件, String[] 选择参数, String 排序顺序)
处理来自客户端的查询请求。
|
int |
update(android.net.Uri uri, android.content.ContentValues 值, String 选择条件, String[] 选择参数)
处理来自客户端的更新请求。
|
静态 void |
validateManifest(android.content.Context 上下文)
检查 AndroidManifest.xml 文件是否为此提供器正确配置。
|
public boolean onCreate()
public android.os.ParcelFileDescriptor openFile(android.net.Uri uri, String mode) throws FileNotFoundException
uri
- 要打开的文件的 URI。mode
- 文件的访问模式。可以是“r”表示只读访问,“rw”表示读写访问,或“rwt”表示读写访问并截断任何现有文件。FileNotFoundException(文件未找到异常)
public android.content.res.AssetFileDescriptor openAssetFile(android.net.Uri uri, String mode) throws FileNotFoundException
uri
- 要打开的文件的 URI。mode
- 文件的访问模式。可以是“r”表示只读访问,“w”表示只写访问(擦除文件中当前的任何数据),“wa”表示只写访问以追加到任何现有数据,“rw”表示对任何现有数据的读写访问,以及“rwt”表示读写访问并截断任何现有文件。FileNotFoundException(文件未找到异常)
public int delete(android.net.Uri uri, String selection, String[] selectionArgs)
此类不支持。调用此方法将导致抛出异常。
uri
- 要查询的完整 URI,包括行 ID(如果请求特定记录)。selection
- 应用于删除行时的可选限制。public String getType(android.net.Uri uri)
uri
- 要查询的 URI。如果类型未知,则返回 null。
public android.net.Uri insert(android.net.Uri uri, android.content.ContentValues values)
此类不支持。调用此方法将导致抛出异常。
uri
- 插入请求的 content:// URI。values
- 要添加到数据库的一组 column_name/value 对。public android.database.Cursor query(android.net.Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
uri
- 要查询的 URI。这将是客户端发送的完整 URI;如果客户端请求特定记录,URI 将以实现应解析并添加到 WHERE 或 HAVING 子句中的记录号结尾,指定该 _id 值。projection
- 要放入游标的列列表。如果为 null,则包含所有列。selection
- 过滤行时应用的选择条件。如果为 null,则包含所有行。selectionArgs
- 您可以在选择中包含 ?s,它们将被 selectionArgs 中的值替换,按照它们在选择中出现的顺序。这些值将被绑定为字符串。sortOrder
- 游标中行的排序方式。如果为 null,则提供器可以自由定义排序顺序。public int update(android.net.Uri uri, android.content.ContentValues values, String selection, String[] selectionArgs)
uri
- 要查询的 URI。如果这是针对特定记录的更新请求,则它可能包含记录 ID。values
- 从列名到新列值的映射包(NULL 是有效值)。selection
- 可选择用于匹配要更新的行的过滤器。public static void validateManifest(android.content.Context context)
如果清单缺少此提供器或其“authorities”属性配置错误,将抛出异常。
此方法仅应由 CoronaActivity 类调用。
context
- 访问此应用程序的清单设置所需的上下文。不能为空。public static android.net.Uri createContentUriForFile(android.content.Context context, File file)
context
- 对此应用程序上下文的引用。需要获取此应用程序的包名称。不能为空。file
- 要为其创建内容 URI 的文件。如果此文件设置为相对路径,则此方法将其视为 APK 的“assets”目录或 Google Play 扩展文件中的资源文件。
不能为空,否则将抛出异常。
public static android.net.Uri createContentUriForFile(android.content.Context context, String filePath)
context
- 对此应用程序上下文的引用。需要获取此应用程序的包名称。不能为空。filePath
- 此应用程序所属文件的相对或绝对路径。如果此文件设置为相对路径,则此方法将其视为 APK 的“assets”目录或 Google Play 扩展文件中的资源文件。
如果设置为 null 或空字符串,将抛出异常。