public class ContextCompat
extends Object
java.lang.Object | |
↳ | android.support.v4.content.ContextCompat |
Known Direct Subclasses |
Known Indirect Subclasses |
Helper用于访问在向后兼容的API级别4之后引入的 Context
功能。
Public constructors |
|
---|---|
ContextCompat() |
Public methods |
|
---|---|
static int |
checkSelfPermission(Context context, String permission) 确定 您是否已获得特定权限。 |
static Context |
createDeviceProtectedStorageContext(Context context) 为当前上下文返回一个新的Context对象,但其存储API由受设备保护的存储支持。 |
static File |
getCodeCacheDir(Context context) 返回专用于存储缓存代码的文件系统上特定于应用程序的缓存目录的绝对路径。 |
static final int |
getColor(Context context, int id) 返回与特定资源ID关联的颜色 从 |
static final ColorStateList |
getColorStateList(Context context, int id) 返回与特定资源ID关联的颜色状态列表。 |
static File |
getDataDir(Context context) 返回存储属于此应用程序的所有私人文件的文件系统上目录的绝对路径。 |
static final Drawable |
getDrawable(Context context, int id) 返回与特定资源ID关联的可绘制对象。 |
static File[] |
getExternalCacheDirs(Context context) 返回应用程序可以放置它拥有的缓存文件的所有外部存储设备上特定于应用程序的目录的绝对路径。 |
static File[] |
getExternalFilesDirs(Context context, String type) 返回应用程序可以放置它拥有的持久性文件的所有外部存储设备上特定于应用程序的目录的绝对路径。 |
static final File |
getNoBackupFilesDir(Context context) 返回类似于 |
static File[] |
getObbDirs(Context context) 返回应用程序的OBB文件(如果有)的所有外部存储设备上的应用程序特定目录的绝对路径。 |
static boolean |
isDeviceProtectedStorage(Context context) 指示此Context的存储API是否由设备加密的存储支持。 |
static boolean |
startActivities(Context context, Intent[] intents, Bundle options) 如果能够,将一组活动作为合成任务堆栈启动。 |
static boolean |
startActivities(Context context, Intent[] intents) 如果能够,将一组活动作为合成任务堆栈启动。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
ContextCompat ()
int checkSelfPermission (Context context, String permission)
确定 您是否已获得特定权限。
Parameters | |
---|---|
context |
Context
|
permission |
String : The name of the permission being checked. |
Returns | |
---|---|
int |
PERMISSION_GRANTED if you have the permission, or PERMISSION_DENIED if not. |
Context createDeviceProtectedStorageContext (Context context)
为当前上下文返回一个新的Context对象,但其存储API由受设备保护的存储支持。
在直接引导的设备上,存储在此位置的数据使用绑定到物理设备的密钥进行加密,并且可以在设备成功引导后立即访问,无论是 在用户使用凭据进行身份验证 之前还是之后 (例如锁定模式或PIN)。
由于受到设备保护的数据在没有用户身份验证的情况下可用,因此应谨慎限制使用此上下文存储的数据。 例如,强烈建议不要在设备保护区域中存储敏感身份验证令牌或密码。
如果底层设备无法使用不同的密钥存储受设备保护和凭据保护的数据,则两个存储区域将同时可用。 它们仍然是磁盘上两个不同的存储位置,只有可用性窗口发生变化。
每次调用此方法都会返回一个Context对象的新实例; 上下文对象不共享,但是常见的状态(ClassLoader,用于相同配置的其他资源)可能是这样的,上下文本身可以是相当轻量级的。
在 isAtLeastN()
之前,此方法返回 null
,因为受设备保护的存储不可用。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
Context |
File getCodeCacheDir (Context context)
返回专用于存储缓存代码的文件系统上特定于应用程序的缓存目录的绝对路径。 在运行LOLLIPOP
或更高版本的设备上,无论是在特定应用程序升级还是整个平台升级时,系统都会删除存储在此位置的所有文件。
此位置适用于存储由应用程序在运行时生成的编译或优化的代码。
应用程序不需要额外的权限来读取或写入返回的路径,因为此路径位于其私有存储中。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
File |
The path of the directory holding application code cache files. |
int getColor (Context context, int id)
返回与特定资源ID关联的颜色
从 M
开始,返回的颜色将根据指定的上下文主题进行样式设置。
Parameters | |
---|---|
context |
Context
|
id |
int : The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier. |
Returns | |
---|---|
int |
A single color value in the form 0xAARRGGBB. |
Throws | |
---|---|
Resources.NotFoundException |
if the given ID does not exist. |
ColorStateList getColorStateList (Context context, int id)
返回与特定资源ID关联的颜色状态列表。
从 M
开始,返回的颜色状态列表将针对指定的上下文主题进行样式设置。
Parameters | |
---|---|
context |
Context
|
id |
int : The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier. |
Returns | |
---|---|
ColorStateList |
A color state list, or null if the resource could not be resolved. |
Throws | |
---|---|
Resources.NotFoundException |
if the given ID does not exist. |
File getDataDir (Context context)
返回存储属于此应用程序的所有私人文件的文件系统上目录的绝对路径。 应用程序不应该直接使用此路径; 他们应该使用getFilesDir()
, getCacheDir()
, getDir(String, int)
,或者其他存储API Context
。
如果调用应用程序移动到采用的存储设备,则返回的路径可能会随时间而改变,因此只应保留相对路径。
调用应用程序无需额外的权限即可读取或写入返回路径下的文件。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
File |
也可以看看:
Drawable getDrawable (Context context, int id)
返回与特定资源ID关联的可绘制对象。
从 LOLLIPOP
开始,返回的drawable将按照指定的Context的主题进行样式化。
Parameters | |
---|---|
context |
Context
|
id |
int : The desired resource identifier, as generated by the aapt tool. This integer encodes the package, type, and resource entry. The value 0 is an invalid identifier. |
Returns | |
---|---|
Drawable |
Drawable An object that can be used to draw this resource. |
File[] getExternalCacheDirs (Context context)
返回应用程序可以放置它拥有的缓存文件的所有外部存储设备上特定于应用程序的目录的绝对路径。 这些文件是应用程序的内部文件,并且通常不会作为媒体显示给用户。
这就像 getCacheDir()
,这些文件在卸载应用程序时将被删除,但是有一些重要的区别:
这里返回的外部存储设备被视为设备的永久部分,包括仿真的外部存储和物理介质插槽,如电池仓中的SD卡。 返回的路径不包括瞬态设备,如USB闪存驱动器。
应用程序可以将数据存储在任何或所有返回的设备上。 例如,应用程序可能会选择将大文件存储在具有最大可用空间的设备上,如StatFs
。
从KITKAT
开始,不需要写入返回路径的权限; 他们总是可以访问调用应用程序。 在此之前,需要编写WRITE_EXTERNAL_STORAGE
。 在辅助外部存储设备上写入这些路径之外的访问权限不可用。 要以向后兼容的方式请求外部存储访问,请考虑使用android:maxSdkVersion
如下所示:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
返回的第一个路径与getExternalCacheDir()
相同。 如果存储设备不可用,返回的路径可能是null
。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
File[] |
File[] getExternalFilesDirs (Context context, String type)
返回应用程序可以放置它拥有的持久性文件的所有外部存储设备上特定于应用程序的目录的绝对路径。 这些文件是应用程序的内部文件,并且通常不会作为媒体显示给用户。
这就像 getFilesDir()
一样,这些文件将在应用程序卸载时被删除,但是有一些重要的区别:
这里返回的外部存储设备被视为设备的永久部分,包括仿真的外部存储和物理介质插槽,如电池仓中的SD卡。 返回的路径不包括瞬态设备,如USB闪存驱动器。
应用程序可以将数据存储在任何或所有返回的设备上。 例如,应用程序可以选择将大文件存储在具有最大可用空间的设备上,如StatFs
所测量的StatFs
。
从KITKAT
开始,不需要写入返回路径的权限; 他们总是可以访问调用应用程序。 在此之前,需要编写WRITE_EXTERNAL_STORAGE
。 在辅助外部存储设备上写入这些路径之外的访问权限不可用。 要以向后兼容的方式请求外部存储访问,请考虑使用android:maxSdkVersion
如下所示:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
返回的第一个路径与getExternalFilesDir(String)
相同。 如果存储设备不可用,返回的路径可能是null
。
Parameters | |
---|---|
context |
Context
|
type |
String
|
Returns | |
---|---|
File[] |
File getNoBackupFilesDir (Context context)
返回类似于getFilesDir()
的文件系统上目录的绝对路径。 不同之处在于放置在此目录下的文件将被排除在自动备份到运行LOLLIPOP
或更高版本的设备上的远程存储中。 有关Android中的自动备份机制的完整讨论,请参阅BackupAgent
。
读取或写入返回的路径不需要任何权限,因为此路径是内部存储器。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
File |
The path of the directory holding application files that will not be automatically backed up to remote storage. |
File[] getObbDirs (Context context)
返回应用程序的OBB文件(如果有)的所有外部存储设备上的应用程序特定目录的绝对路径。 请注意,如果应用程序没有任何OBB文件,这些目录可能不存在。
这类似于 getFilesDir()
,因为这些文件在卸载应用程序时将被删除,但存在一些重要区别:
这里返回的外部存储设备被视为设备的永久部分,包括仿真的外部存储和物理介质插槽,如电池仓中的SD卡。 返回的路径不包括瞬态设备,如USB闪存驱动器。
应用程序可以将数据存储在任何或所有返回的设备上。 例如,应用程序可以选择将大文件存储在具有最多可用空间的设备上,如StatFs
所测量的StatFs
。
从KITKAT
开始,不需要写入返回路径的权限; 他们总是可以访问调用应用程序。 在此之前,需要编写WRITE_EXTERNAL_STORAGE
。 在辅助外部存储设备上写入这些路径之外的访问权限不可用。 要以向后兼容的方式请求外部存储访问,请考虑使用android:maxSdkVersion
如下所示:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
返回的第一个路径与getObbDir()
相同。 如果存储设备不可用,返回的路径可能为null
。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
File[] |
也可以看看:
boolean isDeviceProtectedStorage (Context context)
指示此Context的存储API是否由设备加密的存储支持。
Parameters | |
---|---|
context |
Context
|
Returns | |
---|---|
boolean |
boolean startActivities (Context context, Intent[] intents, Bundle options)
如果能够,将一组活动作为合成任务堆栈启动。
在API级别11(Android 3.0 / Honeycomb)中,使用后退键推荐的应用导航约定已更改。 后退键的行为对于当前任务是本地的,并且不捕获跨越不同任务的导航。 可以通过导航或系统栏上的软件提供的“最近”键访问“最近”UI,从而完成任务之间的导航并轻松完成以前的任务。 在具有较旧硬件按钮配置的设备上,可以通过长按Home键来访问最近的UI。
当从一个任务栈跨越到另一个Android 3.0后,应用程序应该为新任务合成一个后退堆栈/历史记录,以便用户可以通过反复按下后退键导航出新任务并返回到启动器。 后退键不应该在任务堆栈中导航。
startActivities提供了一个构造多个活动的综合任务堆栈的机制。 如果底层API在系统上不可用,则此方法将返回false。
Parameters | |
---|---|
context |
Context : Start activities using this activity as the starting context |
intents |
Intent : Array of intents defining the activities that will be started. The element length-1 will correspond to the top activity on the resulting task stack. |
options |
Bundle : Additional options for how the Activity should be started. See {@link android.content.Context#startActivity(Intent, android.os.Bundle) |
Returns | |
---|---|
boolean |
true if the underlying API was available and the call was successful, false otherwise |
boolean startActivities (Context context, Intent[] intents)
如果能够,将一组活动作为合成任务堆栈启动。
在API级别11(Android 3.0 / Honeycomb)中,使用后退键推荐的应用导航约定已更改。 后退键的行为对于当前任务是本地的,并且不捕获跨越不同任务的导航。 可以通过导航或系统栏上的软件提供的“最近”键访问“最近”UI,从而完成任务之间的导航并轻松完成以前的任务。 在具有较旧硬件按钮配置的设备上,可以通过长按Home键来访问最近的UI。
当从一个任务栈跨越到另一个Android 3.0后,应用程序应该为新任务合成一个后退堆栈/历史记录,以便用户可以通过反复按下后退键导航出新任务并返回到启动器。 后退键不应该在任务堆栈中导航。
startActivities提供了一个构造多个活动的综合任务堆栈的机制。 如果底层API在系统上不可用,则此方法将返回false。
Parameters | |
---|---|
context |
Context : Start activities using this activity as the starting context |
intents |
Intent : Array of intents defining the activities that will be started. The element length-1 will correspond to the top activity on the resulting task stack. |
Returns | |
---|---|
boolean |
true if the underlying API was available and the call was successful, false otherwise |