public abstract class ContentResolver
extends Object
java.lang.Object | |
↳ | android.content.ContentResolver |
Known Direct Subclasses |
此类为应用程序提供对内容模型的访问权限。
有关在内容提供者中使用ContentResolver的更多信息,请阅读 Content Providers开发人员指南。
Public constructors |
|
---|---|
ContentResolver(Context context) |
Public methods |
|
---|---|
final ContentProviderClient |
acquireContentProviderClient(Uri uri) 返回一个 |
final ContentProviderClient |
acquireContentProviderClient(String name) 返回 |
final ContentProviderClient |
acquireUnstableContentProviderClient(String name) 像 |
final ContentProviderClient |
acquireUnstableContentProviderClient(Uri uri) 像 |
static void |
addPeriodicSync(Account account, String authority, Bundle extras, long pollFrequency) 指定应使用指定的频率的帐户,授权和附加功能请求同步。 |
static Object |
addStatusChangeListener(int mask, SyncStatusObserver callback) 当SyncManager的不同方面发生变化时请求通知。 |
ContentProviderResult[] |
applyBatch(String authority, ArrayList<ContentProviderOperation> operations) 应用每个 |
final int |
bulkInsert(Uri url, ContentValues[] values) 将多行插入给定URL中的表中。 |
final Bundle |
call(Uri uri, String method, String arg, Bundle extras) 调用提供者定义的方法。 |
void |
cancelSync(Uri uri) 此方法在API级别5中已弃用。请改用 |
static void |
cancelSync(SyncRequest request) 删除指定的同步。 |
static void |
cancelSync(Account account, String authority) 取消任何与帐户和权限匹配的活动或待处理同步。 |
final Uri |
canonicalize(Uri url) 将给定的 URL转换为其引用资源的标准表示形式,可以跨设备使用,持久化,备份和恢复等。 |
final int |
delete(Uri url, String where, String[] selectionArgs) 删除由内容URI指定的行。 |
static SyncInfo |
getCurrentSync() 此方法在API级别11中已弃用。由于现在支持多个并发同步,因此应使用 |
static List<SyncInfo> |
getCurrentSyncs() 返回包含所有活动同步信息的列表。 |
static int |
getIsSyncable(Account account, String authority) 检查此帐户/提供者是否可以同步。 |
static boolean |
getMasterSyncAutomatically() 获取适用于所有提供者和帐户的主自动同步设置。 |
List<UriPermission> |
getOutgoingPersistedUriPermissions() 返回由调用应用程序托管的所有持久URI权限授予的列表。 |
static List<PeriodicSync> |
getPeriodicSyncs(Account account, String authority) 获取有关给定帐户和权限的定期同步的信息列表。 |
List<UriPermission> |
getPersistedUriPermissions() 返回调用应用程序保留的所有URI许可授权的列表。 |
String[] |
getStreamTypes(Uri url, String mimeTypeFilter) 查询可能的MIME类型的表示形式给定的内容URL可以在与 |
static SyncAdapterType[] |
getSyncAdapterTypes() 获取有关系统已知的SyncAdapter的信息。 |
static boolean |
getSyncAutomatically(Account account, String authority) 检查是否应在收到网络痒感时同步提供者 此方法要求调用方拥有权限 |
final String |
getType(Uri url) 返回给定内容URL的MIME类型。 |
final Uri |
insert(Uri url, ContentValues values) 在给定网址的表格中插入一行。 |
static boolean |
isSyncActive(Account account, String authority) 如果当前正在处理给定帐户或权限的当前同步操作,则返回true。 |
static boolean |
isSyncPending(Account account, String authority) 如果任何匹配权限的待处理状态为真,则返回true。 |
void |
notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork) 通知注册的观察者一行已更新。 |
void |
notifyChange(Uri uri, ContentObserver observer, int flags) 通知注册的观察者一行已更新。 |
void |
notifyChange(Uri uri, ContentObserver observer) 通知注册的观察者一行已更新并尝试将更改同步到网络。 |
final AssetFileDescriptor |
openAssetFileDescriptor(Uri uri, String mode, CancellationSignal cancellationSignal) 打开原始文件描述符以访问URI下的数据。 |
final AssetFileDescriptor |
openAssetFileDescriptor(Uri uri, String mode) 打开原始文件描述符以访问URI下的数据。 |
final ParcelFileDescriptor |
openFileDescriptor(Uri uri, String mode, CancellationSignal cancellationSignal) 打开原始文件描述符以访问URI下的数据。 |
final ParcelFileDescriptor |
openFileDescriptor(Uri uri, String mode) 打开原始文件描述符以访问URI下的数据。 |
final InputStream |
openInputStream(Uri uri) 打开一个流到与内容URI相关联的内容。 |
final OutputStream |
openOutputStream(Uri uri) 同义词为 |
final OutputStream |
openOutputStream(Uri uri, String mode) 打开一个流到与内容URI相关联的内容。 |
final AssetFileDescriptor |
openTypedAssetFileDescriptor(Uri uri, String mimeType, Bundle opts, CancellationSignal cancellationSignal) 打开原始文件描述符以从“content:”URI访问(可能是经过类型转换的)数据。 |
final AssetFileDescriptor |
openTypedAssetFileDescriptor(Uri uri, String mimeType, Bundle opts) 打开原始文件描述符以从“content:”URI访问(可能是经过类型转换的)数据。 |
final Cursor |
query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal) 查询给定的URI,在结果集上返回一个 |
final Cursor |
query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 查询给定的URI,在结果集上返回 |
final void |
registerContentObserver(Uri uri, boolean notifyForDescendants, ContentObserver observer) 注册一个观察者类,当给定内容URI标识的数据发生变化时,该类将获得回调。 |
void |
releasePersistableUriPermission(Uri uri, int modeFlags) 放弃持久的URI权限授予。 |
static void |
removePeriodicSync(Account account, String authority, Bundle extras) 删除周期性同步。 |
static void |
removeStatusChangeListener(Object handle) 删除以前注册的状态更改侦听器。 |
static void |
requestSync(Account account, String authority, Bundle extras) 开始异步同步操作。 |
static void |
requestSync(SyncRequest request) 注册与SyncManager的同步。 |
static void |
setIsSyncable(Account account, String authority, int syncable) 设置此帐户/提供者是否可以同步。 |
static void |
setMasterSyncAutomatically(boolean sync) 设置适用于所有提供者和帐户的主自动同步设置。 |
static void |
setSyncAutomatically(Account account, String authority, boolean sync) 设置提供者在收到网络痒感时是否同步。 |
void |
startSync(Uri uri, Bundle extras) 此方法在API级别5中已弃用。请改用 |
void |
takePersistableUriPermission(Uri uri, int modeFlags) 获取已提供的持久性URI权限授予。 |
final Uri |
uncanonicalize(Uri url) 鉴于之前由 |
final void |
unregisterContentObserver(ContentObserver observer) 取消注册变更观察员。 |
final int |
update(Uri uri, ContentValues values, String where, String[] selectionArgs) 更新内容URI中的行。 |
static void |
validateSyncExtrasBundle(Bundle extras) 检查Bundle中是否只有以下类型的值:
|
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ANY_CURSOR_ITEM_TYPE
这是Android平台的通用MIME类型匹配任何MIME类型的形式“的CURSOR_ITEM_BASE_TYPE
/ SUB_TYPE
”。 SUB_TYPE
是依赖于应用程序的内容的子类型,例如“音频”,“视频”,“播放列表”。
常量值:“vnd.android.cursor.item / *”
String CURSOR_DIR_BASE_TYPE
这是Android平台的基本MIME类型,其内容为URI:包含零个或多个项目的光标。 应用程序应该将它用作基本类型以及它们自己的内容的子类型:表示项目目录的URI。 例如,假设的IMAP电子邮件客户端可能对其收件箱中的所有邮件具有URI content://com.company.provider.imap/inbox
,其MIME类型将被报告为CURSOR_DIR_BASE_TYPE + "/vnd.company.imap-msg"
请注意基本MIME类型在此与 CURSOR_ITEM_BASE_TYPE
之间的 CURSOR_ITEM_BASE_TYPE
取决于数据集中是否有单个项目或多个项目,而子类型保持不变,因为在任一情况下,光标中包含的数据结构都是相同的。
常量值:“vnd.android.cursor.dir”
String CURSOR_ITEM_BASE_TYPE
这是Android平台的基本MIME类型,用于内容:包含单个项目的光标的URI。 应用程序应该将它用作基本类型以及它们自己的内容的子类型:表示特定项目的URI。 例如,假设的IMAP电子邮件客户端可能具有收件箱中特定邮件的URI content://com.company.provider.imap/inbox/1
,其MIME类型将被报告为CURSOR_ITEM_BASE_TYPE + "/vnd.company.imap-msg"
与 CURSOR_DIR_BASE_TYPE
比较。
常量值:“vnd.android.cursor.item”
String EXTRA_SIZE
一个额外的Point
,以像素为Point
描述所请求的图像资源的最佳尺寸。 如果提供者具有多种尺寸的图像,则应该返回最接近此尺寸的图像。
也可以看看:
常量值:“android.content.extra.SIZE”
int NOTIFY_SKIP_NOTIFY_FOR_DESCENDANTS
标记为notifyChange(Uri, ContentObserver, int)
:如果设置,则如果将此通知传递到正在使用“为后代通知”的ContentObserver的根URI,则该通知将被跳过。 这样做的目的是允许提供发送一个“X下的东西”的一般通知,该特定URI的观察者可以接收该通知,同时还发送X下的特定URI。它将在发送前一个时使用该标志,所以“X和后代”的观察者只能看到后者。
常量值:2(0x00000002)
int NOTIFY_SYNC_TO_NETWORK
标志为 notifyChange(Uri, ContentObserver, int)
:尝试将更改同步到网络。
常数值:1(0x00000001)
String SYNC_EXTRAS_ACCOUNT
此常数在API级别5中已弃用。
改为使用requestSync(android.accounts.Account, String, android.os.Bundle)
常数值:“帐户”
String SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS
表示如果同步适配器确定数量过多,则不应继续进行删除操作。 见tooManyDeletions
常量值:“discard_deletions”
String SYNC_EXTRAS_DO_NOT_RETRY
如果此额外设置为true,则该请求如果失败则不会重试。
常量值:“do_not_retry”
String SYNC_EXTRAS_EXPEDITED
如果此额外设置为true,则同步请求将安排在同步请求队列的前端,且没有任何延迟
常数值:“加急”
String SYNC_EXTRAS_FORCE
此常数在API级别5中已弃用。
改为使用SYNC_EXTRAS_MANUAL
常值:“强制”
String SYNC_EXTRAS_IGNORE_BACKOFF
如果此额外设置为true,则初始尝试的任何退避(例如由于重试)都会被同步调度程序忽略。 如果此请求失败并被重新安排,那么重试将仍然遵守退避。
常量值:“ignore_backoff”
String SYNC_EXTRAS_IGNORE_SETTINGS
如果此额外设置为true,则sync调度程序将忽略同步设置(如getSyncAutomatically())。
常量值:“ignore_settings”
String SYNC_EXTRAS_INITIALIZE
由SyncManager设置以请求SyncAdapter为给定的帐户/权限对自行初始化。 一个需要的初始化步骤是确保setIsSyncable(android.accounts.Account, String, int)
以> = 0的值被调用。 设置此标志时,SyncAdapter不需要进行完全同步,尽管可以这样做。
常数值:“初始化”
String SYNC_EXTRAS_MANUAL
设置此额外功能与设置 SYNC_EXTRAS_IGNORE_SETTINGS
和 SYNC_EXTRAS_IGNORE_BACKOFF
常值:“强制”
String SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS
指示同步适配器应继续进行删除操作,即使它确定有太多。 见tooManyDeletions
常量值:“deletions_override”
String SYNC_EXTRAS_REQUIRE_CHARGING
如果此额外设置为true,则仅在设备插入时才会调度同步请求。这相当于在 SyncRequest
上调用setRequiresCharging(true)。
常数值:“require_charging”
String SYNC_EXTRAS_UPLOAD
表示此同步仅用于将本地更改上载到服务器。 例如,如果同步是通过调用notifyChange(android.net.Uri, android.database.ContentObserver, boolean)
启动的,则它将设置为true
常数值:“上传”
ContentProviderClient acquireContentProviderClient (Uri uri)
返回ContentProviderClient
与该关联ContentProvider
是服务于URI的内容,启动供应商如果需要的话。 如果没有提供者与uri关联,则返回null。 调用者必须通过调用release()
来表明他们已经完成了与提供者的release()
,这将允许系统释放提供者,它确定没有其他保持活跃的理由。
Parameters | |
---|---|
uri |
Uri : specifies which provider should be acquired |
Returns | |
---|---|
ContentProviderClient |
a ContentProviderClient that is associated with the ContentProvider that services the content at uri or null if there isn't one. |
ContentProviderClient acquireContentProviderClient (String name)
返回ContentProviderClient
与该关联ContentProvider
与名称的权限,如果有必要开始提供商。 如果没有提供者与uri关联,则返回null。 调用者必须通过调用release()
来表明他们已经与提供者完成了,这将允许系统释放提供者,它确定没有其他理由保持它的活动。
Parameters | |
---|---|
name |
String : specifies which provider should be acquired |
Returns | |
---|---|
ContentProviderClient |
a ContentProviderClient that is associated with the ContentProvider with the authority of name or null if there isn't one. |
ContentProviderClient acquireUnstableContentProviderClient (String name)
像acquireContentProviderClient(String)
一样,但用于不信任目标内容提供者的稳定性时。 这将关闭平台中的机制,清理依赖内容提供者的流程,如果内容提供者的流程消失。 通常情况下,您可以放心地假设,一旦您获得了提供商,即使您的流程处于后台,您也可以根据需要随意使用它,并且不会消失。 如果使用这种方法,在与提供者进行通信时需要注意处理任何失败,并确保关闭它以便稍后可以重新打开它。 特别是,从通话中DeadObjectException
会让您知道内容提供商已经消失; 那时当前的ContentProviderClient对象是无效的,你应该释放它。 如果您想尝试重新启动提供程序并对其执行新操作,则可以获取新的程序。
Parameters | |
---|---|
name |
String
|
Returns | |
---|---|
ContentProviderClient |
ContentProviderClient acquireUnstableContentProviderClient (Uri uri)
像acquireContentProviderClient(Uri)
一样,但用于不信任目标内容提供者的稳定性时使用。 这将关闭平台中的机制,清理依赖内容提供者的流程,如果内容提供者的流程消失。 通常情况下,您可以放心地假设,一旦您获得了提供商,即使您的流程处于后台,您也可以根据需要随意使用它,并且不会消失。 如果使用这种方法,在与提供者进行通信时需要注意处理任何失败,并确保关闭它以便稍后可以重新打开它。 特别是,从通话中DeadObjectException
会让您知道内容提供商已经消失; 那时当前的ContentProviderClient对象是无效的,你应该释放它。 如果您想尝试重新启动提供程序并对其执行新操作,则可以获取新的程序。
Parameters | |
---|---|
uri |
Uri
|
Returns | |
---|---|
ContentProviderClient |
void addPeriodicSync (Account account, String authority, Bundle extras, long pollFrequency)
指定应使用指定的频率的帐户,授权和附加功能请求同步。 如果已经有另一个周期性同步与帐户,权限和额外计划,则不会添加新的定期同步,而是更新前一个同步的频率。
这些定期同步符合“syncAutomatically”和“masterSyncAutomatically”设置。 尽管这些同步按照指定的频率进行安排,但如果同步操作队列中的其他同步超前,则可能需要更长的时间才能启动它。 这意味着实际的开始时间可能会漂移。
定期同步是不允许有任何的SYNC_EXTRAS_DO_NOT_RETRY
, SYNC_EXTRAS_IGNORE_BACKOFF
, SYNC_EXTRAS_IGNORE_SETTINGS
, SYNC_EXTRAS_INITIALIZE
, SYNC_EXTRAS_FORCE
, SYNC_EXTRAS_EXPEDITED
, SYNC_EXTRAS_MANUAL
设置为true。 如果有任何提供,则会抛出IllegalArgumentException
。
此方法要求调用方拥有权限 WRITE_SYNC_SETTINGS
。
用于定期同步的软件包可以使用 getPeriodicSyncs(Account, String)
以具有正确权限的应用程序进行查询,因此不应在此传输敏感数据。
Parameters | |
---|---|
account |
Account : the account to specify in the sync |
authority |
String : the provider to specify in the sync request |
extras |
Bundle : extra parameters to go along with the sync request |
pollFrequency |
long : how frequently the sync should be performed, in seconds. A minimum value of 1 hour is enforced. |
Throws | |
---|---|
IllegalArgumentException |
if an illegal extra was set or if any of the parameters are null. |
Object addStatusChangeListener (int mask, SyncStatusObserver callback)
当SyncManager的不同方面发生变化时请求通知。 可以请求的不同项目有:
The caller can set one or more of the status types in the mask for any given listener registration.Parameters | |
---|---|
mask |
int : the status change types that will cause the callback to be invoked |
callback |
SyncStatusObserver : observer to be invoked when the status changes |
Returns | |
---|---|
Object |
a handle that can be used to remove the listener at a later time |
ContentProviderResult[] applyBatch (String authority, ArrayList<ContentProviderOperation> operations)
应用每个ContentProviderOperation
对象并返回其结果数组。 传递OperationApplicationException,这可能会由调用apply(ContentProvider, ContentProviderResult[], int)
。 如果所有的应用程序都成功了,那么将会返回一个ContentProviderResult
数组,其元素数与操作数相同。 这是特定于实施的操作,如果某个调用将结果应用于OperationApplicationException
,将有多少操作(如果有的话)已成功应用。
Parameters | |
---|---|
authority |
String : the authority of the ContentProvider to which this batch should be applied |
operations |
ArrayList : the operations to apply |
Returns | |
---|---|
ContentProviderResult[] |
the results of the applications |
Throws | |
---|---|
OperationApplicationException |
thrown if an application fails. See apply(ContentProvider, ContentProviderResult[], int) for more information. |
RemoteException |
thrown if a RemoteException is encountered while attempting to communicate with a remote provider. |
int bulkInsert (Uri url, ContentValues[] values)
将多行插入给定URL中的表中。 该功能不保证插入的原子性。
Parameters | |
---|---|
url |
Uri : The URL of the table to insert into. |
values |
ContentValues : The initial values for the newly inserted rows. The key is the column name for the field. Passing null will create an empty row. |
Returns | |
---|---|
int |
the number of newly created rows. |
Bundle call (Uri uri, String method, String arg, Bundle extras)
调用提供者定义的方法。 这可以用来实现比使用光标更便宜和/或不适合传统表格模型的读取或写入接口。
Parameters | |
---|---|
uri |
Uri
|
method |
String : provider-defined method name to call. Opaque to framework, but must be non-null. |
arg |
String : provider-defined String argument. May be null. |
extras |
Bundle : provider-defined Bundle argument. May be null. |
Returns | |
---|---|
Bundle |
a result Bundle, possibly null. Will be null if the ContentProvider does not implement call. |
Throws | |
---|---|
NullPointerException |
if uri or method is null |
IllegalArgumentException |
if uri is not known |
void cancelSync (Uri uri)
此方法在API级别5中已被弃用。
改为使用cancelSync(android.accounts.Account, String)
取消任何与Uri匹配的活动或挂起的同步。 如果uri为空,则所有同步将被取消。
Parameters | |
---|---|
uri |
Uri : the uri of the provider to sync or null to sync all providers. |
void cancelSync (SyncRequest request)
删除指定的同步。 这将取消任何挂起或主动同步。 如果请求是定期同步,则此呼叫将删除将来的任何事件。
如果指定了周期性同步,则调用者必须拥有权限 WRITE_SYNC_SETTINGS
。
Parameters | |
---|---|
request |
SyncRequest : SyncRequest object containing information about sync to cancel. |
void cancelSync (Account account, String authority)
取消任何与帐户和权限匹配的活动或待处理同步。 帐户和权限可以分别独立设置为空,即分别与任何帐户或权限的同步匹配。
Parameters | |
---|---|
account |
Account : filters the syncs that match by this account |
authority |
String : filters the syncs that match by this authority |
Uri canonicalize (Uri url)
将给定的 URL转换为其引用资源的标准表示形式,可以跨设备使用,保留,备份和恢复等。返回的Uri仍然是一个功能完备的Uri,可用于其内容提供商,允许您执行所有操作相同的内容提供商的操作与原始的URI的- query(Uri, String[], String, String[], String)
, openInputStream(android.net.Uri)
,等在原有的和新的尤里斯之间行为的唯一区别是,内容提供商可能需要使用它来解决它在每次调用做一些额外的工作到正确的资源,特别是如果规范的Uri已被移到不同的环境。
如果您在环境之间移动规范的Uri,则应该使用该原始Uri对canonicalize(Uri)
执行另一个调用,以针对当前环境重新规范化它。 或者,您可能希望使用uncanonicalize(Uri)
将其转换为非规范Uri,该规范仅在当前环境中工作,但可能比规范化表示更有效。
Parameters | |
---|---|
url |
Uri : The Uri that is to be transformed to a canonical representation. Like all resolver calls, the input can be either a non-canonical or canonical Uri. |
Returns | |
---|---|
Uri |
Returns the official canonical representation of url, or null if the content provider does not support a canonical representation of the given Uri. Many providers may not support canonicalization of some or all of their Uris. |
也可以看看:
int delete (Uri url, String where, String[] selectionArgs)
删除由内容URI指定的行。 如果内容提供者支持事务,则删除将是原子性的。
Parameters | |
---|---|
url |
Uri : The URL of the row to delete. |
where |
String : A filter to apply to rows before deleting, formatted as an SQL WHERE clause (excluding the WHERE itself). |
selectionArgs |
String
|
Returns | |
---|---|
int |
The number of rows deleted. |
SyncInfo getCurrentSync ()
此方法在API级别11中已弃用。
由于现在支持多个并发同步,因此您应该使用getCurrentSyncs()
来获取当前同步的准确列表。 此方法返回当前同步列表中的第一个项目,如果没有,则返回null。
如果同步处于活动状态,则返回关于它的信息,否则返回null。
此方法要求调用方拥有权限 READ_SYNC_STATS
。
Returns | |
---|---|
SyncInfo |
the SyncInfo for the currently active sync or null if one is not active. |
List<SyncInfo> getCurrentSyncs ()
返回包含所有活动同步信息的列表。 如果没有活动的同步,此列表将为空。
此方法要求调用方拥有权限 READ_SYNC_STATS
。
Returns | |
---|---|
List<SyncInfo> |
a List of SyncInfo objects for the currently active syncs. |
int getIsSyncable (Account account, String authority)
检查此帐户/提供者是否可以同步。
此方法要求调用方拥有权限 READ_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account
|
authority |
String
|
Returns | |
---|---|
int |
>0 if it is syncable, 0 if not, and <0 if the state isn't known yet. |
boolean getMasterSyncAutomatically ()
获取适用于所有提供者和帐户的主自动同步设置。 如果这是错误的,那么每个提供商的自动同步设置将被忽略。
此方法要求调用方拥有权限 READ_SYNC_SETTINGS
。
Returns | |
---|---|
boolean |
the master auto-sync setting that applies to all the providers and accounts |
List<UriPermission> getOutgoingPersistedUriPermissions ()
返回由调用应用程序托管的所有持久URI权限授予的列表。 也就是说,已经从调用应用程序授予了返回的权限。 仅返回takePersistableUriPermission(Uri, int)
赠款。
注意:某些返回的URI可能在用户解锁后才可用。
Returns | |
---|---|
List<UriPermission> |
List<PeriodicSync> getPeriodicSyncs (Account account, String authority)
获取有关给定帐户和权限的定期同步的信息列表。
此方法要求调用方拥有权限 READ_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account : the account whose periodic syncs we are querying |
authority |
String : the provider whose periodic syncs we are querying |
Returns | |
---|---|
List<PeriodicSync> |
a list of PeriodicSync objects. This list may be empty but will never be null. |
List<UriPermission> getPersistedUriPermissions ()
返回调用应用程序保留的所有URI许可授权的列表。 也就是说,返回的权限已被授予给调用应用程序。 只有返回takePersistableUriPermission(Uri, int)
才能获得持久性补助。
注意:某些返回的URI可能在用户解锁后才可用。
Returns | |
---|---|
List<UriPermission> |
String[] getStreamTypes (Uri url, String mimeTypeFilter)
查询可能的MIME类型的表示形式给定的内容URL可以在与openTypedAssetFileDescriptor(Uri, String, Bundle)
一起以流形式打开时返回。 请注意,这里的类型不一定是由getType(Uri)
返回的类型的超集 - 很多内容提供者无法为其包含的结构化数据返回原始流。
Parameters | |
---|---|
url |
Uri : A Uri identifying content (either a list or specific type), using the content:// scheme. |
mimeTypeFilter |
String : The desired MIME type. This may be a pattern, such as */*, to query for all available MIME types that match the pattern. |
Returns | |
---|---|
String[] |
Returns an array of MIME type strings for all available data streams that match the given mimeTypeFilter. If there are none, null is returned. |
SyncAdapterType[] getSyncAdapterTypes ()
获取有关系统已知的SyncAdapter的信息。
Returns | |
---|---|
SyncAdapterType[] |
an array of SyncAdapters that have registered with the system |
boolean getSyncAutomatically (Account account, String authority)
检查是否应在收到网络痒感时同步提供者
此方法要求调用方拥有权限 READ_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account : the account whose setting we are querying |
authority |
String : the provider whose setting we are querying |
Returns | |
---|---|
boolean |
true if the provider should be synced when a network tickle is received |
String getType (Uri url)
返回给定内容URL的MIME类型。
Parameters | |
---|---|
url |
Uri : A Uri identifying content (either a list or specific type), using the content:// scheme. |
Returns | |
---|---|
String |
A MIME type for the content, or null if the URL is invalid or the type is unknown |
Uri insert (Uri url, ContentValues values)
在给定网址的表格中插入一行。 如果内容提供者支持事务,插入将是原子的。
Parameters | |
---|---|
url |
Uri : The URL of the table to insert into. |
values |
ContentValues : The initial values for the newly inserted row. The key is the column name for the field. Passing an empty ContentValues will create an empty row. |
Returns | |
---|---|
Uri |
the URL of the newly created row. |
boolean isSyncActive (Account account, String authority)
如果当前正在处理给定帐户或权限的当前同步操作,则返回true。
此方法要求调用方拥有权限 READ_SYNC_STATS
。
Parameters | |
---|---|
account |
Account : the account whose setting we are querying |
authority |
String : the provider whose behavior is being queried |
Returns | |
---|---|
boolean |
true if a sync is active for the given account or authority. |
boolean isSyncPending (Account account, String authority)
如果任何匹配权限的待处理状态为真,则返回true。
此方法要求调用方拥有权限 READ_SYNC_STATS
。
Parameters | |
---|---|
account |
Account : the account whose setting we are querying |
authority |
String : the provider whose behavior is being queried |
Returns | |
---|---|
boolean |
true if there is a pending sync with the matching account and authority |
void notifyChange (Uri uri, ContentObserver observer, boolean syncToNetwork)
通知注册的观察者一行已更新。 要注册,请致电registerContentObserver()
。 默认情况下,CursorAdapter对象会得到这个通知。 如果syncToNetwork为true,则会尝试使用为所提供的uri的权限注册的同步适配器来安排本地同步。 没有帐户会被传递到同步适配器,因此所有匹配的帐户都将被同步。
Parameters | |
---|---|
uri |
Uri : The uri of the content that was changed. |
observer |
ContentObserver : The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing |
syncToNetwork |
boolean : If true, same as NOTIFY_SYNC_TO_NETWORK . |
void notifyChange (Uri uri, ContentObserver observer, int flags)
通知注册的观察者一行已更新。 要注册,请致电registerContentObserver()
。 默认情况下,CursorAdapter对象会得到这个通知。 如果syncToNetwork为true,则会尝试使用为所提供的uri的权限注册的同步适配器来安排本地同步。 没有帐户会被传递到同步适配器,因此所有匹配的帐户都将被同步。
Parameters | |
---|---|
uri |
Uri : The uri of the content that was changed. |
observer |
ContentObserver : The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing |
flags |
int : Additional flags: NOTIFY_SYNC_TO_NETWORK . |
void notifyChange (Uri uri, ContentObserver observer)
通知注册的观察者一行已更新并尝试将更改同步到网络。 要注册,请致电registerContentObserver()
。 默认情况下,CursorAdapter对象会得到这个通知。
Parameters | |
---|---|
uri |
Uri : The uri of the content that was changed. |
observer |
ContentObserver : The observer that originated the change, may be null. The observer that originated the change will only receive the notification if it has requested to receive self-change notifications by implementing |
AssetFileDescriptor openAssetFileDescriptor (Uri uri, String mode, CancellationSignal cancellationSignal)
打开原始文件描述符以访问URI下的数据。 这与与给定URI关联的提供者的基础openAssetFile(Uri, String)
方法进行交互,以检索存储在那里的任何文件。
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)SCHEME_ANDROID_RESOURCE
) SchemeUri对象可用于引用APK文件中的资源。 Uri应该是以下格式之一:
android.resource://package_name/id_number
package_name
is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
id_number
is the int form of the ID.Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.my_resource");
android.resource://package_name/type/name
package_name
is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
type
is the string form of the resource type. For example, raw
or drawable
. name
is the string form of the resource name. That is, whatever the file name was in your res directory, without the type extension. The easiest way to construct this form is Uri uri = Uri.parse("android.resource://com.example.myapp/raw/my_resource");
请注意,如果为内容:URI的只读输入(模式为“r”)调用此函数,它将为MIME类型为“* / *”的用户调用openTypedAssetFileDescriptor(Uri, String, Bundle)
。 这使得这些调用者可以从提供者实现的任何内置数据转换中受益。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mode |
String : The file mode to use, as per ContentProvider.openAssetFile . |
cancellationSignal |
CancellationSignal : A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown. |
Returns | |
---|---|
AssetFileDescriptor |
Returns a new ParcelFileDescriptor pointing to the file. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException of no file exists under the URI or the mode is invalid. |
AssetFileDescriptor openAssetFileDescriptor (Uri uri, String mode)
打开原始文件描述符以访问URI下的数据。 这与与给定URI相关联的提供者的基础openAssetFile(Uri, String)
方法进行交互,以检索存储在那里的任何文件。
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)SCHEME_ANDROID_RESOURCE
) SchemeUri对象可用于引用APK文件中的资源。 Uri应该是以下格式之一:
android.resource://package_name/id_number
package_name
is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
id_number
is the int form of the ID.Uri uri = Uri.parse("android.resource://com.example.myapp/" + R.raw.my_resource");
android.resource://package_name/type/name
package_name
is your package name as listed in your AndroidManifest.xml. For example com.example.myapp
type
is the string form of the resource type. For example, raw
or drawable
. name
is the string form of the resource name. That is, whatever the file name was in your res directory, without the type extension. The easiest way to construct this form is Uri uri = Uri.parse("android.resource://com.example.myapp/raw/my_resource");
请注意,如果在content:URI上为只读输入(模式为“r”)调用此函数,它将为MIME类型为“* / *”的用户调用openTypedAssetFileDescriptor(Uri, String, Bundle)
。 这使得这些调用者可以从提供者实现的任何内置数据转换中受益。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mode |
String : The file mode to use, as per ContentProvider.openAssetFile . |
Returns | |
---|---|
AssetFileDescriptor |
Returns a new ParcelFileDescriptor pointing to the file. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException of no file exists under the URI or the mode is invalid. |
ParcelFileDescriptor openFileDescriptor (Uri uri, String mode, CancellationSignal cancellationSignal)
打开原始文件描述符以访问URI下的数据。 这与openAssetFileDescriptor(Uri, String)
类似,但使用基础的openFile(Uri, String)
ContentProvider.openFile()}方法,因此不会与返回文件子部分的提供程序一起使用。 如果可能的话,你应该使用openAssetFileDescriptor(Uri, String)
。 如果提供程序返回文件的子部分,您将收到FileNotFoundException异常。
SCHEME_CONTENT
)SCHEME_FILE
)有关这些方案的更多信息,请参阅 openAssetFileDescriptor(Uri, String)
。
如果以独有的“r”或“w”模式打开,则返回的ParcelFileDescriptor可以是管道或套接字对,以启用数据流式传输。 以“rw”模式打开意味着磁盘上的文件支持查找。 如果可能的话,请始终使用独占模式为基础ContentProvider
最大的灵活性。
如果您正在编写文件,并且需要向提供者传送错误,请使用 closeWithError(String)
。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mode |
String : The file mode to use, as per ContentProvider.openFile . |
cancellationSignal |
CancellationSignal : A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown. |
Returns | |
---|---|
ParcelFileDescriptor |
Returns a new ParcelFileDescriptor pointing to the file. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException if no file exists under the URI or the mode is invalid. |
ParcelFileDescriptor openFileDescriptor (Uri uri, String mode)
打开原始文件描述符以访问URI下的数据。 这与openAssetFileDescriptor(Uri, String)
类似,但使用基础的openFile(Uri, String)
ContentProvider.openFile()}方法,因此不适用于返回文件子部分的提供程序。 如果可能的话,你应该使用openAssetFileDescriptor(Uri, String)
。 如果提供程序返回文件的子部分,您将收到FileNotFoundException异常。
SCHEME_CONTENT
)SCHEME_FILE
)有关这些方案的更多信息,请参阅 openAssetFileDescriptor(Uri, String)
。
如果以独有的“r”或“w”模式打开,则返回的ParcelFileDescriptor可以是管道或套接字对,以启用数据流式传输。 以“rw”模式打开意味着磁盘上的文件支持查找。 如果可能的话,总是使用独有模式来给予基础ContentProvider
最大的灵活性。
如果您正在编写文件,并且需要向提供者传达错误,请使用 closeWithError(String)
。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mode |
String : The file mode to use, as per ContentProvider.openFile . |
Returns | |
---|---|
ParcelFileDescriptor |
Returns a new ParcelFileDescriptor pointing to the file. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException if no file exists under the URI or the mode is invalid. |
InputStream openInputStream (Uri uri)
打开一个流到与内容URI相关联的内容。 如果没有与URI相关的数据,则抛出FileNotFoundException。
SCHEME_CONTENT
)SCHEME_ANDROID_RESOURCE
)SCHEME_FILE
)有关这些方案的更多信息,请参阅 openAssetFileDescriptor(Uri, String)
。
Parameters | |
---|---|
uri |
Uri : The desired URI. |
Returns | |
---|---|
InputStream |
InputStream |
Throws | |
---|---|
FileNotFoundException |
if the provided URI could not be opened. |
OutputStream openOutputStream (Uri uri)
openOutputStream(uri, "w")
同义词。
Parameters | |
---|---|
uri |
Uri
|
Returns | |
---|---|
OutputStream |
Throws | |
---|---|
FileNotFoundException |
if the provided URI could not be opened. |
OutputStream openOutputStream (Uri uri, String mode)
打开一个流到与内容URI相关联的内容。 如果没有与URI相关的数据,则抛出FileNotFoundException。
SCHEME_CONTENT
)SCHEME_FILE
)有关这些方案的更多信息,请参阅 openAssetFileDescriptor(Uri, String)
。
Parameters | |
---|---|
uri |
Uri : The desired URI. |
mode |
String : May be "w", "wa", "rw", or "rwt". |
Returns | |
---|---|
OutputStream |
OutputStream |
Throws | |
---|---|
FileNotFoundException |
if the provided URI could not be opened. |
AssetFileDescriptor openTypedAssetFileDescriptor (Uri uri, String mimeType, Bundle opts, CancellationSignal cancellationSignal)
打开原始文件描述符以从“content:”URI访问(可能是经过类型转换的)数据。 这与与给定URI关联的提供者的基础openTypedAssetFile(Uri, String, Bundle)
方法进行交互,以检索为存储在那里的数据检索任何适当的数据流。
与 openAssetFileDescriptor(Uri, String)
不同,此功能仅适用于“content:”URI,因为内容提供商是唯一具有关联MIME类型的设施,以确保返回的数据流具有所需的类型。
所有文本/ *流都以UTF-8编码。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mimeType |
String : The desired MIME type of the returned data. This can be a pattern such as */*, which will allow the content provider to select a type, though there is no way for you to determine what type it is returning. |
opts |
Bundle : Additional provider-dependent options. |
cancellationSignal |
CancellationSignal : A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown. |
Returns | |
---|---|
AssetFileDescriptor |
Returns a new ParcelFileDescriptor from which you can read the data stream from the provider. Note that this may be a pipe, meaning you can't seek in it. The only seek you should do is if the AssetFileDescriptor contains an offset, to move to that offset before reading. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException of no data of the desired type exists under the URI. |
AssetFileDescriptor openTypedAssetFileDescriptor (Uri uri, String mimeType, Bundle opts)
打开原始文件描述符以从“content:”URI访问(可能是经过类型转换的)数据。 这与与给定URI相关联的提供者的基础openTypedAssetFile(Uri, String, Bundle)
方法进行交互,以检索为存储在那里的数据检索任何适当的数据流。
与 openAssetFileDescriptor(Uri, String)
不同,此函数仅适用于“content:”URI,因为内容提供者是唯一具有关联MIME类型的工具,以确保返回的数据流具有所需的类型。
所有文本/ *流都以UTF-8编码。
Parameters | |
---|---|
uri |
Uri : The desired URI to open. |
mimeType |
String : The desired MIME type of the returned data. This can be a pattern such as */*, which will allow the content provider to select a type, though there is no way for you to determine what type it is returning. |
opts |
Bundle : Additional provider-dependent options. |
Returns | |
---|---|
AssetFileDescriptor |
Returns a new ParcelFileDescriptor from which you can read the data stream from the provider. Note that this may be a pipe, meaning you can't seek in it. The only seek you should do is if the AssetFileDescriptor contains an offset, to move to that offset before reading. You own this descriptor and are responsible for closing it when done. |
Throws | |
---|---|
FileNotFoundException |
Throws FileNotFoundException of no data of the desired type exists under the URI. |
Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, CancellationSignal cancellationSignal)
查询给定的URI,在结果集上返回一个 Cursor
,并带有可选的支持取消。
为获得最佳性能,来电者应遵循以下准则:
selection
parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.Parameters | |
---|---|
uri |
Uri : The URI, using the content:// scheme, for the content to retrieve. |
projection |
String : A list of which columns to return. Passing null will return all columns, which is inefficient. |
selection |
String : A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. |
selectionArgs |
String : You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. |
sortOrder |
String : How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered. |
cancellationSignal |
CancellationSignal : A signal to cancel the operation in progress, or null if none. If the operation is canceled, then OperationCanceledException will be thrown when the query is executed. |
Returns | |
---|---|
Cursor |
A Cursor object, which is positioned before the first entry, or null |
也可以看看:
Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
查询给定的URI,返回结果集 Cursor
。
为获得最佳性能,来电者应遵循以下准则:
selection
parameter, so that queries that differ only by those values will be recognized as the same for caching purposes.Parameters | |
---|---|
uri |
Uri : The URI, using the content:// scheme, for the content to retrieve. |
projection |
String : A list of which columns to return. Passing null will return all columns, which is inefficient. |
selection |
String : A filter declaring which rows to return, formatted as an SQL WHERE clause (excluding the WHERE itself). Passing null will return all rows for the given URI. |
selectionArgs |
String : You may include ?s in selection, which will be replaced by the values from selectionArgs, in the order that they appear in the selection. The values will be bound as Strings. |
sortOrder |
String : How to order the rows, formatted as an SQL ORDER BY clause (excluding the ORDER BY itself). Passing null will use the default sort order, which may be unordered. |
Returns | |
---|---|
Cursor |
A Cursor object, which is positioned before the first entry, or null |
也可以看看:
void registerContentObserver (Uri uri, boolean notifyForDescendants, ContentObserver observer)
注册一个观察者类,当给定内容URI标识的数据发生变化时,该类将获得回调。
Parameters | |
---|---|
uri |
Uri : The URI to watch for changes. This can be a specific row URI, or a base URI for a whole class of content. |
notifyForDescendants |
boolean : When false, the observer will be notified whenever a change occurs to the exact URI specified by uri or to one of the URI's ancestors in the path hierarchy. When true, the observer will also be notified whenever a change occurs to the URI's descendants in the path hierarchy. |
observer |
ContentObserver : The object that receives callbacks when changes occur. |
void releasePersistableUriPermission (Uri uri, int modeFlags)
放弃持久的URI权限授予。 该URI必须先前已经与takePersistableUriPermission(Uri, int)
。 对调用包的任何非持续性授予将保持不变。
Parameters | |
---|---|
uri |
Uri
|
modeFlags |
int
|
也可以看看:
void removePeriodicSync (Account account, String authority, Bundle extras)
删除周期性同步。 如果帐户,授权和附加功能与现有的定期同步不匹配,则不会有任何影响。
此方法要求调用方拥有权限 WRITE_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account : the account of the periodic sync to remove |
authority |
String : the provider of the periodic sync to remove |
extras |
Bundle : the extras of the periodic sync to remove |
void removeStatusChangeListener (Object handle)
删除以前注册的状态更改侦听器。
Parameters | |
---|---|
handle |
Object : the handle that was returned by addStatusChangeListener(int, SyncStatusObserver) |
void requestSync (Account account, String authority, Bundle extras)
开始异步同步操作。 如果你想监视同步的进度,你可以注册一个SyncObserver。 额外套件中只能使用以下类型的值:
Parameters | |
---|---|
account |
Account : which account should be synced |
authority |
String : which authority should be synced |
extras |
Bundle : any extras to pass to the SyncAdapter. |
void requestSync (SyncRequest request)
注册与SyncManager的同步。 这些请求使用SyncRequest.Builder
。
Parameters | |
---|---|
request |
SyncRequest
|
void setIsSyncable (Account account, String authority, int syncable)
设置此帐户/提供者是否可以同步。
此方法要求调用方拥有权限 WRITE_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account
|
authority |
String
|
syncable |
int : >0 denotes syncable, 0 means not syncable, <0 means unknown |
void setMasterSyncAutomatically (boolean sync)
设置适用于所有提供者和帐户的主自动同步设置。 如果这是错误的,那么每个提供商的自动同步设置将被忽略。
此方法要求调用方拥有权限 WRITE_SYNC_SETTINGS
。
Parameters | |
---|---|
sync |
boolean : the master auto-sync setting that applies to all the providers and accounts |
void setSyncAutomatically (Account account, String authority, boolean sync)
设置提供者在收到网络痒感时是否同步。
此方法要求调用方拥有权限 WRITE_SYNC_SETTINGS
。
Parameters | |
---|---|
account |
Account : the account whose setting we are querying |
authority |
String : the provider whose behavior is being controlled |
sync |
boolean : true if the provider should be synced when tickles are received for it |
void startSync (Uri uri, Bundle extras)
此方法在API级别5中已被弃用。
改为使用requestSync(android.accounts.Account, String, android.os.Bundle)
开始异步同步操作。 如果你想监视同步的进度,你可以注册一个SyncObserver。 额外套件中只能使用以下类型的值:
Parameters | |
---|---|
uri |
Uri : the uri of the provider to sync or null to sync all providers. |
extras |
Bundle : any extras to pass to the SyncAdapter. |
void takePersistableUriPermission (Uri uri, int modeFlags)
获取已提供的持久性URI权限授予。 一旦获得,许可授予将在设备重新启动时被记住。 只有通过FLAG_GRANT_PERSISTABLE_URI_PERMISSION
授予的URI权限才能被FLAG_GRANT_PERSISTABLE_URI_PERMISSION
。 如果赠款已经持续,再次购买将触及getPersistedTime()
。
Parameters | |
---|---|
uri |
Uri
|
modeFlags |
int
|
也可以看看:
Uri uncanonicalize (Uri url)
鉴于之前由canonicalize(Uri)
生成的典型Uri,请将其转换为本地非规范形式。 在某些情况下,如果您知道在当前环境中仅使用Uri,并且希望在与内容提供者一起使用Uri时想要避免任何可能的开销,或者要验证所引用的数据在新环境。
Parameters | |
---|---|
url |
Uri : The canonical Uri that is to be convered back to its non-canonical form. |
Returns | |
---|---|
Uri |
Returns the non-canonical representation of url. This will return null if data identified by the canonical Uri can not be found in the current environment; callers must always check for null and deal with that by appropriately falling back to an alternative. |
也可以看看:
void unregisterContentObserver (ContentObserver observer)
取消注册变更观察员。
Parameters | |
---|---|
observer |
ContentObserver : The previously registered observer that is no longer needed. |
int update (Uri uri, ContentValues values, String where, String[] selectionArgs)
更新内容URI中的行。 如果内容提供者支持事务,则更新将是原子的。
Parameters | |
---|---|
uri |
Uri : The URI to modify. |
values |
ContentValues : The new field values. The key is the column name for the field. A null value will remove an existing field value. |
where |
String : A filter to apply to rows before updating, formatted as an SQL WHERE clause (excluding the WHERE itself). |
selectionArgs |
String
|
Returns | |
---|---|
int |
the number of rows updated. |
Throws | |
---|---|
NullPointerException |
if uri or values are null |
void validateSyncExtrasBundle (Bundle extras)
检查Bundle中是否只有以下类型的值:
Parameters | |
---|---|
extras |
Bundle : the Bundle to check |