鸿蒙OS Context
Context
public interface Context
提供应用中对象的上下文,获取应用环境信息。
您可以使用 Context 来获取资源、启动能力、创建或获取任务调度程序,以及获取有关应用程序的捆绑和运行信息。
字段摘要
修饰符和类型 | 字段 | 描述 |
---|---|---|
static int | CONTEXT_IGNORE_SECURITY | 指示与 createBundleContext(java.lang.String,nt) 一起使用的标志,用于创建始终可以在忽略所有安全限制的情况下加载的 Context 对象。 |
static int | CONTEXT_INCLUDE_CODE | 指示与 createBundleContext(java.lang.String,int) 一起使用的标志,用于创建包含应用程序代码的 Context 对象。 |
static int | CONTEXT_RESOUCE_ONLY | |
static int | CONTEXT_RESTRICTED | 指示与 createBundleContext(java.lang.String,int) 一起使用的标志,用于创建可以禁用特定功能的 Context 对象。 |
static int | MODE_APPEND | 表示追加文件创建模式,如果要创建的文件已经存在,数据将被写入文件末尾,而不是被擦除。 |
static int | MODE_PRIVATE | 指示默认文件创建模式,其中创建的文件只能由调用应用程序(或共享相同用户 ID 的所有应用程序)访问。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
boolean | canRequestPermission(String permission) | 与权限管理模块确认是否需要请求提示才能授予某个权限。 |
void | compelVerifyCallerPermission(String permission, String message) | 检查是否已为调用进程授予进程间通信 (IPC) 的指定权限,如果未授予该权限,则抛出 SecurityException。 |
void | compelVerifyCallerUriPermission(Uri uri, int modeFlags, String message) | 检查IPC的调用进程是否有访问指定URI的权限,如果没有权限则抛出SecurityException。 |
void | compelVerifyPermission(String permission, int pid, int uid, String message) | 检查pid和uid标识的进程是否已授予指定权限,如果未授予权限,则抛出SecurityException。 |
void | compelVerifyPermission(String permission, String message) | 检查是否已将指定权限授予调用进程,如果未授予权限,则抛出 SecurityException。 |
void | compelVerifyUriPermission(Uri uri, int pid, int uid, int modeFlags, String message) | 检查pid和uid标识的进程是否有权限访问指定的URI,如果没有权限则抛出SecurityException。 |
void | compelVerifyUriPermission(Uri uri, int modeFlags, String message) | 检查调用进程是否有访问指定URI的权限,如果没有权限则抛出SecurityException。 |
void | compelVerifyUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message) | 检查pid和uid标识的进程是否指定了读写权限以及访问指定URI的权限,如果没有权限则抛出SecurityException。 |
boolean | connectAbility(Intent intent, IAbilityConnection conn) | 使用 AbilityInfo.AbilityType.SERVICE 模板将当前ability连接到ability。 |
Context | createBundleContext(String bundleName, int flag) | 为具有给定包名称的应用程序创建 Context 对象。 |
TaskDispatcher | createParallelTaskDispatcher(String name, TaskPriority priority) | 创建具有指定优先级的并行任务调度程序。 |
TaskDispatcher | createSerialTaskDispatcher(String name, TaskPriority priority) | 创建具有指定优先级的串行任务调度程序。 |
boolean | deleteFile(String fileName) | 删除与应用程序关联的指定私有文件。 |
void | disconnectAbility(IAbilityConnection conn) | 使用 AbilityInfo.AbilityType.SERVICE 模板断开当前ability与ability的连接。 |
void | displayUnlockMissionMessage() | 向用户显示系统定义的消息,提示用户如何退出锁定任务模式。 |
AbilityInfo | getAbilityInfo() | 获取有关当前ability的信息。 |
IAbilityManager | getAbilityManager() | 获得ability管理器。 |
Context | getAbilityPackageContext() | 获取此ability的 Context 对象。 |
Context | getApplicationContext() | 获取应用程序的 Context 对象。 |
ApplicationInfo | getApplicationInfo() | 获取有关当前应用程序的信息。 |
String | getAppType() | 获取此应用程序的类型。 |
String | getBundleCodePath() | 获取包含当前ability的包的路径。 |
IBundleManager | getBundleManager() | 获得一个 IBundleManager 实例。 |
String | getBundleName() | 获取当前ability的捆绑包名称。 |
String | getBundleResourcePath() | 获取包含此ability的 Ohos ability包 (HAP} 的路径。 |
File | getCacheDir() | 获取设备内部存储上特定于应用程序的缓存目录。 |
Uri | getCaller() | 获取有关此ability调用者的信息。 |
ElementName | getCallingAbility() | 获取调用当前ability的ElementName。 |
String | getCallingBundle() | 获取调用当前技能的技能的捆绑包名称。 |
ClassLoader | getClassloader() | 获取一个 ClassLoader 实例。 |
File | getCodeCacheDir() | 获取设备内部存储上特定于应用程序的代码缓存目录。 |
int | getColor(int resId) | 根据指定的资源 ID 获取此 Context 的颜色。 |
int | getColorMode() | 获取颜色模式。 |
File | getDatabaseDir() | 获取本地数据库路径。 |
File | getDataDir() | 获取存储本应用所有私有数据文件的绝对路径。 |
File | getDir(String name, int mode) | 获取应用程序自定义数据文件存放目录。 |
int | getDisplayOrientation() | 获取ability的当前显示方向。 |
File | getDistributedDir() | 获取分布式文件路径。 |
ElementName | getElementName() | 获取当前ability的 ohos.bundle.ElementName 对象。 |
File | getExternalCacheDir() | 获取主外部或共享存储设备上特定于应用程序的缓存目录的绝对路径。 |
File[] | getExternalCacheDirs() | 获取所有外部或共享存储设备上特定于应用程序的缓存目录的绝对路径。 |
File | getExternalFilesDir(String type) | 获取用于在主外部或共享存储设备上存储应用程序文件的目录的绝对路径。 |
File[] | getExternalFilesDirs(String type) | 获取用于在所有外部或共享存储设备上存储应用程序文件的目录的绝对路径。 |
File[] | getExternalMediaDirs() | 获取它可以放置的所有文件上的特定于应用程序的媒体目录。 |
File | getFilesDir() | 获取设备内部存储中应用程序文件的存储目录。 |
TaskDispatcher | getGlobalTaskDispatcher(TaskPriority priority) | 获取具有指定优先级的全局任务调度程序。 |
HapModuleInfo | getHapModuleInfo() | 获取应用程序的 HapModuleInfo 对象。 |
int[] | getIntArray(int resId) | 根据指定的资源 ID 获取此 Context 的整数数组。 |
Object | getLastStoredDataWhenConfigChanged() | 当系统配置发生变化时,获取通过 Ability.onStoreDataWhenConfigChange() 保存的最新数据。 |
String | getLocalClassName() | 获取ability的本地类名。 |
TaskDispatcher | getMainTaskDispatcher() | 获取绑定到应用程序主线程的任务调度程序。 |
File | getNoBackupFilesDir() | 获取应用程序创建并将自动备份到远程存储的绝对路径。 |
Pattern | getPattern() | 获取此 Context 的模式。 |
File | getPreferencesDir() | 获取应用程序偏好文件的存放路径。 |
ProcessInfo | getProcessInfo() | 获取当前进程的信息,包括进程ID和名称。 |
String | getProcessName() | 获取当前进程的名称 |
ResourceManager | getResourceManager() | 获得资源管理器。 |
ResourceManager | getResourceManager(Configuration configuration) | 根据指定的 Configuration 对象获取资源管理器。 |
String | getString(int resId) | 根据指定的资源 ID 获取此 Context 的字符串。 |
String | getString(int resId, Object... formatArgs) | 根据指定的资源 ID 和 formatArgs 获取此 Context 的字符串。 |
String[] | getStringArray(int resId) | 根据指定的资源 ID 获取此 Context 的字符串数组。 |
Theme | getTheme() | 获取此 Context 的主题。 |
int | getThemeId() | 获取此 Context 的主题 ID。 |
TaskDispatcher | getUITaskDispatcher() | 获取绑定到 UI 线程的任务调度程序。 |
boolean | isCredentialEncryptedStorage() | 检查上下文是否使用凭据加密存储。 |
boolean | isDeviceEncryptedStorage() | 检查上下文是否使用受设备保护的存储。 |
boolean | isUpdatingConfigurations() | 检查此ability的配置是否正在更改 |
void | lockMission() | 设置应用程序以在锁定任务模式下启动其功能。 |
void | printDrawnCompleted() | 打印出系统完成绘制此页面ability所需的时间。 |
void | requestPermissionsFromUser(String[] permissions, int requestCode) | 从系统请求某些权限。 |
void | restart() | 使用新实例重新启动此ability。 |
void | setColorMode(int mode) | 设置颜色模式。 |
void | setDisplayOrientation(AbilityInfo.DisplayOrientation newOrientation) | 设置当前ability的显示方向。 |
void | setPattern(int patternId) | 根据指定的模式 ID 设置此上下文的模式。 |
void | setShowOnLockScreen(boolean showOnLockScreen) | 设置是否在锁定屏幕显示时在锁定屏幕顶部显示该ability,保持该ability处于 ACTIVE 状态。 |
void | setTheme(int themeId) | 根据指定的主题 ID 设置此 Context 的主题。 |
void | setTransitionAnimation(int enterAnim, int exitAnim) | 设置两个ability之间的过渡动画。 |
void | setWakeUpScreen(boolean wakeUpScreen) | 设置此ability恢复时是否唤醒屏幕。 |
void | startAbilities(Intent[] intents) | 启动多个ability。 |
void | startAbility(Intent intent, int requestCode) | 开始一个新的ability。 |
void | startAbility(Intent intent, int requestCode, AbilityStartSetting abilityStartSetting) | 使用特殊ability开始设置一个新ability。 |
void | startAbility(Intent intent, AbilityStartSetting abilityStartSetting, IAbilityStartCallback iAbilityStartCallback) | 开始一个新的ability。 |
boolean | stopAbility(Intent intent) | 销毁另一个使用 AbilityInfo.AbilityType.SERVICE 模板的ability。 |
void | switchToCredentialEncryptedStorageContext() | 将上下文存储更改为受凭证保护的存储。 |
void | switchToDeviceEncryptedStorageContext() | 将上下文存储更改为设备保护存储。 |
void | terminateAbility() | 破坏当前ability |
void | terminateAbility(int requestCode) | 通过调用 Ability.startAbilityForResult(ohos.aafwk.content.Intent, int, ohos.aafwk.ability.startsetting.AbilityStartSetting) 并传递相同的 requestCode 来破坏您之前启动的另一个能力。 |
boolean | terminateAbilityResult(int startId) | 如果启动的次数等于给定 startId 表示的次数,则销毁此 Service ability。 |
void | unlockMission() | 通过退出锁定任务模式来解锁此ability。 |
int | verifyCallingOrSelfPermission(String permission) | 检查调用或当前进程是否具有给定的权限。 |
int | verifyCallingPermission(String permission) | 检查进程间通信的调用进程是否具有给定的权限。 |
int | verifyPermission(String permission, int pid, int uid) | 检查进程 ID (PID) 和用户 ID (UID) 是否具有给定的权限。 |
int | verifySelfPermission(String permission) | 检查当前进程是否具有给定的权限。 |
字段详细信息
CONTEXT_IGNORE_SECURITY
static final int CONTEXT_IGNORE_SECURITY
指示与 createBundleContext(java.lang.String,int) 一起使用的标志,用于创建始终可以在忽略所有安全限制的情况下加载的 Context 对象。
值为 0x00000002。
CONTEXT_INCLUDE_CODE
static final int CONTEXT_INCLUDE_CODE
指示与 createBundleContext(java.lang.String,int) 一起使用的标志,用于创建包含应用程序代码的 Context 对象。
值为 0x00000001。
CONTEXT_RESOUCE_ONLY
static final int CONTEXT_RESOUCE_ONLY
CONTEXT_RESTRICTED
static final int CONTEXT_RESTRICTED
指示与 createBundleContext(java.lang.String,int) 一起使用的标志,用于创建可以禁用特定功能的 Context 对象。
值为 0x00000004。
MODE_APPEND
static final int MODE_APPEND
表示追加文件创建模式,如果要创建的文件已经存在,数据将被写入文件末尾,而不是被擦除。
MODE_PRIVATE
static final int MODE_PRIVATE
指示默认文件创建模式,其中创建的文件只能由调用应用程序(或共享相同用户 ID 的所有应用程序)访问。
方法详情
createParallelTaskDispatcher
TaskDispatcher createParallelTaskDispatcher(String name, TaskPriority priority)
创建具有指定优先级的并行任务调度程序。
与使用 getGlobalTaskDispatcher(ohos.app.dispatcher.task.TaskPriority) 创建的全局任务调度器不同,并行任务调度器可以使用单独的任务组并行运行一个组中的任务,并依次运行不同的任务组。
参数:
参数名称 | 参数描述 |
---|---|
name | 指示任务调度程序名称,该参数用于定位问题。 |
priority | 指示并行任务分派器分派的所有任务的优先级。 |
返回:
返回一个并行任务调度程序。
createSerialTaskDispatcher
TaskDispatcher createSerialTaskDispatcher(String name, TaskPriority priority)
创建具有指定优先级的串行任务调度程序。
如果要按特定顺序执行任务,请使用串行任务调度程序。 否则,请使用并行任务调度程序。
参数:
参数名称 | 参数描述 |
---|---|
name | 指示任务调度程序名称。 该参数用于定位问题。 |
priority | 表示创建的任务调度器所调度的所有任务的优先级。 |
返回:
返回一个串行任务调度程序。
getGlobalTaskDispatcher
TaskDispatcher getGlobalTaskDispatcher(TaskPriority priority)
获取具有指定优先级的全局任务调度程序。
您可以使用全局任务分派器来分派彼此独立的任务。 不要在此调度程序上创建任务组或执行障碍。
参数:
参数名称 | 参数描述 |
---|---|
priority | 表示全局任务调度器调度的所有任务的优先级。 |
返回:
返回一个全局任务调度器。
getMainTaskDispatcher
TaskDispatcher getMainTaskDispatcher()
获取绑定到应用程序主线程的任务调度程序。
在此调度程序上调度的任务按顺序执行。 不要在主线程上使用这个dispatcher来运行同步任务,否则会发生死锁。
返回:
返回绑定到应用程序主线程的任务调度程序。
getUITaskDispatcher
TaskDispatcher getUITaskDispatcher()
获取绑定到 UI 线程的任务调度程序。
在此调度程序上调度的任务按顺序执行。 请勿在 UI 线程上使用此调度程序来运行同步任务,否则会发生死锁。
返回:
返回绑定到 UI 线程的任务调度程序。
getApplicationInfo
ApplicationInfo getApplicationInfo()
获取有关当前应用程序的信息。
返回的应用信息包括应用名称、应用权限等基本信息。
返回:
返回当前应用程序的 ApplicationInfo 对象。
getProcessInfo
ProcessInfo getProcessInfo()
获取当前进程的信息,包括进程ID和名称。
返回:
返回当前进程的 ProcessInfo 对象。
getAbilityInfo
AbilityInfo getAbilityInfo()
获取有关当前ability的信息。
返回的信息包括类名、包名和其他有关当前ability的信息。
返回:
返回当前ability的 AbilityInfo 对象。
getResourceManager
ResourceManager getResourceManager()
获得资源管理器。
返回:
返回一个 ResourceManager 对象。
getPreferencesDir
File getPreferencesDir()
获取应用程序偏好文件的存放路径。
如果首选项文件路径不存在,则系统创建一个并返回创建的路径。
返回:
返回首选项文件。
getDatabaseDir
File getDatabaseDir()
获取本地数据库路径。
如果本地数据库路径不存在,则系统创建一个并返回创建的路径。
返回:
返回本地数据库文件。
getDistributedDir
File getDistributedDir()
获取分布式文件路径。
如果分布式文件路径不存在,则系统创建一个并返回创建的路径。 此方法仅适用于能力的上下文,而不适用于应用程序的上下文。
返回:
返回分发的文件。
switchToDeviceEncryptedStorageContext
void switchToDeviceEncryptedStorageContext()
将上下文存储更改为设备保护存储。
switchToCredentialEncryptedStorageContext
void switchToCredentialEncryptedStorageContext()
将上下文存储更改为受凭证保护的存储。
isDeviceEncryptedStorage
boolean isDeviceEncryptedStorage()
检查上下文是否使用受设备保护的存储。
返回:
如果上下文使用受设备保护的存储,则返回 true; 否则返回 false。
isCredentialEncryptedStorage
boolean isCredentialEncryptedStorage()
检查上下文是否使用凭据加密存储。
返回:
如果上下文使用凭证加密存储,则返回 true; 否则返回 false。
verifyCallingPermission
int verifyCallingPermission(String permission)
检查进程间通信的调用进程是否具有给定的权限。
调用进程不是当前进程。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限,此参数不能为空。 |
返回:
如果调用进程有权限,则返回 0 (IBundleManager.PERMISSION_GRANTED); 否则返回 -1 (IBundleManager.PERMISSION_DENIED)。
verifySelfPermission
int verifySelfPermission(String permission)
检查当前进程是否具有给定的权限。
仅当当前进程没有特定权限时,才需要调用 [requestPermissionsFromUser(java.lang.String],int) 来请求权限。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限,此参数不能为空。 |
返回:
如果当前进程有权限,则返回 0 (IBundleManager.PERMISSION_GRANTED); 否则返回 -1 (IBundleManager.PERMISSION_DENIED)。
verifyCallingOrSelfPermission
int verifyCallingOrSelfPermission(String permission)
检查调用或当前进程是否具有给定的权限。
仅当调用来自远程设备时,此方法才检查调用进程的权限。 否则,它会检查当前进程的权限。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限,此参数不能为空。 |
返回:
如果调用或当前进程具有权限,则返回 0 (IBundleManager.PERMISSION_GRANTED); 否则返回 -1 (IBundleManager.PERMISSION_DENIED)。
verifyPermission
int verifyPermission(String permission, int pid, int uid)
检查进程 ID (PID) 和用户 ID (UID) 是否具有给定的权限。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限,此参数不能为空。 |
pid | 表示进程ID,该值必须大于 0。 |
uid | 表示用户标识。 |
返回:
如果 PID 和 UID 有权限,则返回 0 (IBundleManager.PERMISSION_GRANTED); 否则返回 -1 (IBundleManager.PERMISSION_DENIED)。
getClassloader
ClassLoader getClassloader()
获取一个 ClassLoader 实例。
ClassLoader实例用于加载一个类,例如使用类名加载当前ability的类。
返回:
返回一个 ClassLoader 实例。
getApplicationContext
Context getApplicationContext()
获取应用程序的 Context 对象。
返回:
返回应用程序的 Context 对象。
terminateAbility
void terminateAbility()
破坏当前ability。
当前使用AbilityInfo.AbilityType.SERVICE 或AbilityInfo.AbilityType.PAGE 模板的ability执行所有操作后,它可以使用此方法销毁自身以释放内存。
terminateAbility
void terminateAbility(int requestCode)
通过调用 Ability.startAbilityForResult(ohos.aafwk.content.Intent, int, ohos.aafwk.ability.startsetting.AbilityStartSetting) 并传递相同的 requestCode 来破坏您之前启动的另一个能力。
参数:
参数名称 | 参数描述 |
---|---|
requestCode | 指示为启动ability而传递的请求代码。 |
displayUnlockMissionMessage
void displayUnlockMissionMessage()
向用户显示系统定义的消息,提示用户如何退出锁定任务模式。
此方法仅在包含此能力的任务处于 ohos.app.AbilityManager#LOCK_MISSION_MODE_LOCKED 或 ohos.app.AbilityManager#LOCK_MISSION_MODE_PINNED 状态时生效。
lockMission
void lockMission()
设置应用程序以在锁定任务模式下启动ability。
此方法仅在ability在前台运行时生效。
unlockMission
void unlockMission()
通过退出锁定任务模式来解锁此ability。
此方法仅对已通过 lockMission() 方法进入锁定任务模式的ability生效。
getLocalClassName
String getLocalClassName()
获取ability的本地类名。 本地类名不以包名作为前缀。 此方法仅适用于页面功能。
返回:
返回本地类名。
getElementName
ElementName getElementName()
获取当前ability的 ohos.bundle.ElementName 对象。 此方法仅适用于页面ability。
返回:
返回当前ability的 ohos.bundle.ElementName 对象。
getCallingAbility
ElementName getCallingAbility()
获取调用当前技能的技能的ElementName。
您可以使用获取的 ElementName 来检查是否允许调用能力接收您将发送的数据。
如果您没有使用 Ability.startAbilityForResult(ohos.aafwk.content.Intent, int, ohos.aafwk.ability.startsetting.AbilityStartSetting) 启动调用能力,则返回 null。
返回:
返回调用ability的 ElementName; 如果没有可用的调用能力,则返回 null。
getCallingBundle
String getCallingBundle()
获取调用当前ability的捆绑包名称。
您可以使用获取的捆绑包名称来检查是否允许调用ability接收您将发送的数据。
如果您没有使用 Ability.startAbilityForResult(ohos.aafwk.content.Intent, int, ohos.aafwk.ability.startsetting.AbilityStartSetting) 启动调用ability,则返回 null。
返回:
返回调用ability的捆绑包名称; 如果没有可用的调用ability,则返回 null。
stopAbility
boolean stopAbility(Intent intent)
销毁另一个使用 AbilityInfo.AbilityType.SERVICE 模板的能力。
当前使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的能力可以调用此方法来销毁另一个使用 AbilityInfo.AbilityType.SERVICE 模板的能力。 当前的能力本身可以通过调用 terminateAbility() 方法来销毁。
参数:
参数名称 | 参数描述 |
---|---|
intent | 表示 Intent 包含有关破坏能力的信息。 |
返回:
如果ability被成功摧毁,则返回 true; 否则返回 false。
startAbility
void startAbility(Intent intent, int requestCode)
开始一个新的ability。
使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability使用此方法启动特定ability。 系统根据意图参数的值从已安装的技能中定位目标ability,然后启动。 您可以使用intent参数指定开始的ability。
参数:
参数名称 | 参数描述 |
---|---|
intent | 指示包含有关目标启动ability信息的 Intent。 |
requestCode | 表示使用AbilityInfo.AbilityType.PAGE模板的ability启动后返回的请求码。 您可以定义请求代码来识别ability返回的结果。 取值范围为0~65535。该参数只对使用AbilityInfo.AbilityType.PAGE模板的ability有效。 |
startAbility
void startAbility(Intent intent, AbilityStartSetting abilityStartSetting, IAbilityStartCallback iAbilityStartCallback)
开始一个新的ability。
使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability启动特定ability。 系统根据意图参数的值从已安装的ability中定位目标ability,然后启动。 您可以使用intent参数指定开始的ability。
参数:
参数名称 | 参数描述 |
---|---|
intent | 指示包含有关目标启动ability信息的 Intent。 |
abilityStartSetting | 表示启动ability中使用的特殊启动设置。 |
iAbilityStartCallback | 表示ability启动回调接口。 |
startAbility
void startAbility(Intent intent, int requestCode, AbilityStartSetting abilityStartSetting)
使用特殊ability开始设置一个新的ability。
使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability启动特定ability。 系统根据意图参数的值从已安装的ability中定位目标abilit,然后启动。 您可以使用intent参数指定开始的ability。
参数:
参数名称 | 参数描述 |
---|---|
intent | 指示包含有关目标启动ability信息的 Intent。 |
requestCode | 表示ability启动后返回的请求码。 您可以定义请求代码来识别ability返回的结果。取值范围为 0 到 65535。 |
abilityStartSetting | 表示启动ability中使用的特殊启动设置。 |
startAbilities
void startAbilities(Intent[] intents)
启动多种ability。
使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability启动特定ability。 系统根据intents参数的值区分目标ability和已安装ability,然后启动目标ability。 您可以使用intents参数来指定目标ability。
参数:
参数名称 | 参数描述 |
---|---|
intents | 表示包含目标ability信息的 Intent 对象数组。 |
createBundleContext
Context createBundleContext(String bundleName, int flag)
为具有给定包名称的应用程序创建 Context 对象。
创建的Context对象与指定应用程序加载后获取的Context对象相同。 它们具有相同的资源和类加载器。 每次调用此方法时都会返回一个新的 Context 对象。
参数:
参数名称 | 参数描述 |
---|---|
bundleName | 指示应用程序的捆绑包名称。 |
flag | 表示创建 Context 对象的标志。 它可以是 0、以下任意值或以下值的任意组合:CONTEXT_IGNORE_SECURITY、CONTEXT_INCLUDE_CODE 和 CONTEXT_RESTRICTED。 值 0 表示为应用程序创建上下文没有限制。 |
返回:
返回为指定应用程序创建的 Context 对象。
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果出于安全原因无法将请求的 Context 加载到调用者的进程中,则抛出此异常。 要解决此异常,您可以将 CONTEXT_IGNORE_SECURITY 添加到 flag 的值。 |
canRequestPermission
boolean canRequestPermission(String permission)
与权限管理模块确认是否需要请求提示才能授予某个权限。
在调用 [requestPermissionsFromUser(java.lang.String],int) 请求权限之前,需要调用当前方法检查是否需要提示。 如果不需要提示,则不会发起权限请求。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示要查询的权限,此参数不能为空。 |
返回:
如果当前应用程序没有权限并且用户没有关闭进一步的请求,则返回 true; 如果当前应用程序已经拥有该权限,该权限被系统拒绝,或者该权限被用户拒绝并且用户关闭了进一步的请求,则返回 false。
requestPermissionsFromUser
void requestPermissionsFromUser(String[] permissions, int requestCode)
从系统请求某些权限。
权限请求调用此方法。 这是一种异步方法。 执行时,Ability.onRequestPermissionsFromUserResult(int, String[], int[]) 方法会被回调。
参数:
参数名称 | 参数描述 |
---|---|
permissions | 指示要请求的权限列表,此参数不能为空。 |
requestCode | 指示要传递给 Ability.onRequestPermissionsFromUserResult(int, String[], int[]) 回调方法的请求代码,此代码不能为负数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 requestCode 为负。 |
connectAbility
boolean connectAbility(Intent intent, IAbilityConnection conn)
使用 AbilityInfo.AbilityType.SERVICE 模板将当前ability连接到ability。
此方法可由使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability调用,但连接的目标必须是使用 AbilityInfo.AbilityType.SERVICE 模板的ability。 连接后,必须实现 IAbilityConnection 接口才能获取目标ability的代理。
参数:
参数名称 | 参数描述 |
---|---|
intent | 指示包含有关连接ability的信息的 Intent。 |
conn | 指示目标ability连接时的回调对象。 |
返回:
如果连接成功,则返回 true;否则返回 false。
disconnectAbility
void disconnectAbility(IAbilityConnection conn)
使用 AbilityInfo.AbilityType.SERVICE 模板断开当前ability与ability的连接。
此方法可由使用 AbilityInfo.AbilityType.SERVICE 或 AbilityInfo.AbilityType.PAGE 模板的ability调用,但断开连接的目标必须是使用 AbilityInfo.AbilityType.SERVICE 模板的ability。
参数:
参数名称 | 参数描述 |
---|---|
conn | 表示连接建立后connectAbility(ohos.aafwk.content.Intent,ohos.aafwk.ability.IAbilityConnection)传递的IAbilityConnection回调对象。 IAbilityConnection 对象唯一地标识两个ability之间的连接。 |
setDisplayOrientation
void setDisplayOrientation(AbilityInfo.DisplayOrientation newOrientation)
设置当前ability的显示方向。
该设置仅对使用 AbilityInfo.AbilityType.PAGE 模板的ability生效。
参数:
参数名称 | 参数描述 |
---|---|
newOrientation | 指示当前ability的新方向。 |
getBundleManager
IBundleManager getBundleManager()
获得一个 IBundleManager 实例。
您可以使用此实例来获取有关应用程序包的信息。
返回:
返回一个 IBundleManager 实例。
getBundleName
String getBundleName()
获取当前ability的捆绑包名称。
返回:
返回当前ability的捆绑包名称。
getBundleCodePath
String getBundleCodePath()
获取包含当前ability的包的路径。
返回的路径包含模块的资源、源代码和配置文件。
返回:
返回包文件的路径。
getBundleResourcePath
String getBundleResourcePath()
获取包含此ability的 Ohos ability package (HAP} 的路径。
返回:
返回包含此ability的 HAP 的路径。
getDataDir
File getDataDir()
获取存储本应用所有私有数据文件的绝对路径。
返回:
返回存储此应用程序所有私有数据文件的绝对路径。
getCacheDir
File getCacheDir()
获取设备内部存储上特定于应用程序的缓存目录。
如果设备上的其他地方需要磁盘空间,系统会自动从缓存目录中删除文件。 旧文件总是首先被删除。
返回:
返回特定于应用程序的缓存目录。
getCodeCacheDir
File getCodeCacheDir()
获取设备内部存储上特定于应用程序的代码缓存目录。
当您的特定应用程序升级和整个平台升级时,系统将删除存储在此位置的所有文件。
返回:
返回特定于应用程序的代码缓存目录。
getExternalMediaDirs
File[] getExternalMediaDirs()
获取它可以放置的所有文件上的特定于应用程序的媒体目录。
卸载您的特定应用程序时,系统将删除所有这些文件。
返回:
返回特定于应用程序的媒体。
getNoBackupFilesDir
File getNoBackupFilesDir()
获取应用程序创建并将自动备份到远程存储的绝对路径。
如果将应用程序移动到采用的存储设备,则返回的路径可能会更改。
返回:
保存不会自动备份到远程存储的应用程序文件的目录的路径。
getFilesDir
File getFilesDir()
获取设备内部存储中应用程序文件的存储目录。
返回:
返回应用程序文件目录。
getDir
File getDir(String name, int mode)
获取应用程序自定义数据文件存放目录。
您可以使用返回的 File 对象在此目录中创建和访问文件。 这些文件只能由当前应用程序访问。
参数:
参数名称 | 参数描述 |
---|---|
name | 指示要检索的目录的名称。 该目录是作为应用程序数据的一部分创建的。 |
mode | 指示文件操作模式。 该值可以是 0 或 MODE_PRIVATE 的组合。 |
返回:
返回请求目录的 File 对象。
getExternalCacheDir
File getExternalCacheDir()
获取主外部或共享存储设备上特定于应用程序的缓存目录的绝对路径。
应用程序可以将其缓存文件放在此目录中。
返回:
返回外部或共享存储设备上应用程序特定缓存目录的绝对路径; 如果外部或共享存储设备暂时不可用,则返回 null。
getExternalCacheDirs
File[] getExternalCacheDirs()
获取所有外部或共享存储设备上特定于应用程序的缓存目录的绝对路径。
应用程序可以将其缓存文件放在这些目录中。
返回:
返回所有外部或共享存储设备上应用程序特定缓存目录的绝对路径; 如果外部或共享存储设备暂时不可用,则返回 null。 返回的第一个路径与 getExternalCacheDir() 返回的路径相同。
getExternalFilesDir
File getExternalFilesDir(String type)
获取用于在主外部或共享存储设备上存储应用程序文件的目录的绝对路径。
应用程序可以将其持久文件放置在此目录中。
参数:
参数名称 | 参数描述 |
---|---|
type | 指示要返回的文件目录的类型。 对于以下目录或子目录,此参数可以为空:文件的根目录 Environment.DIRECTORY_PICTURES、Environment.DIRECTORY_DOCUMENTS、Environment.DIRECTORY_DOWNLOADS、Environment.DIRECTORY_MOVIES 或 Environment.DIRECTORY_MUSIC 类型的子目录。 |
返回:
返回外部或共享存储设备上应用程序文件目录的绝对路径; 如果外部或共享存储设备暂时不可用,则返回 null。
getExternalFilesDirs
File[] getExternalFilesDirs(String type)
获取用于在所有外部或共享存储设备上存储应用程序文件的目录的绝对路径。
应用程序可以将其持久文件放在这些目录中。
参数:
参数名称 | 参数描述 |
---|---|
type | 指示要返回的文件目录的类型。 对于以下目录或子目录,此参数可以为空:文件的根目录 Environment.DIRECTORY_PICTURES、Environment.DIRECTORY_DOCUMENTS、Environment.DIRECTORY_DOWNLOADS、Environment.DIRECTORY_MOVIES 或 Environment.DIRECTORY_MUSIC 类型的子目录。 |
返回:
返回所有外部或共享存储设备上应用程序文件目录的绝对路径; 如果外部或共享存储设备暂时不可用,则返回 null。 返回的第一个路径与 getExternalFilesDir(java.lang.String) 返回的路径相同。
deleteFile
boolean deleteFile(String fileName)
删除与应用程序关联的指定私有文件。
参数:
参数名称 | 参数描述 |
---|---|
fileName | 指示要删除的文件的名称,文件名不能包含路径分隔符。 |
返回:
如果文件被成功删除,则返回 true;否则返回 false。
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果 fileName 包含路径分隔符,则引发此异常。 |
getAbilityManager
IAbilityManager getAbilityManager()
获得ability管理器。
ability管理器提供有关正在运行的进程和应用程序的内存使用情况的信息。
返回:
返回一个 IAbilityManager 实例。
terminateAbilityResult
boolean terminateAbilityResult(int startId)
如果启动的次数等于给定 startId 表示的次数,则销毁此 Service ability。 此方法与调用 terminateAbility() 销毁此 Service ability相同,只是此方法可帮助您避免在客户端在 Ability.onCommand(ohos.aafwk.content.Intent, boolean) 中请求服务ability启动时销毁它
参数:
参数名称 | 参数描述 |
---|---|
startId | 表示传递给 Ability.onCommand(ohos.aafwk.content.Intent, boolean) 的该 Service ability的启动次数。 每次启动此功能时,startId 都会增加 1。 例如,如果该ability已启动六次,则 startId 的值为 6。 |
返回:
如果 startId 与启动次数匹配,则返回 true 并且该 Service ability将被销毁; 否则返回 false。
getDisplayOrientation
int getDisplayOrientation()
获取此ability的当前显示方向。
返回:
返回当前显示方向。
setShowOnLockScreen
void setShowOnLockScreen(boolean showOnLockScreen)
设置是否在锁定屏幕显示时在锁定屏幕顶部显示该ability,保持该ability处于 ACTIVE 状态。
参数:
参数名称 | 参数描述 |
---|---|
showOnLockScreen | 指定是否在锁定屏幕顶部显示此功能。 true 表示在锁屏上显示,false 表示不显示。 |
setWakeUpScreen
void setWakeUpScreen(boolean wakeUpScreen)
设置此ability恢复时是否唤醒屏幕。
此方法仅对用户在屏幕唤醒后可见的ability生效。
参数:
参数名称 | 参数描述 |
---|---|
wakeUpScreen | 指定是否唤醒屏幕。 true 表示唤醒它,false 表示不唤醒。 |
restart
void restart()
使用新实例重新启动此ability。 这类似于当该ability由于系统配置更改而被破坏时,重新启动该ability的实例的过程。
此方法仅对使用 AbilityInfo.AbilityType.PAGE 模板的ability生效。
setTransitionAnimation
void setTransitionAnimation(int enterAnim, int exitAnim)
设置两个ability之间的过渡动画。
该方法必须在 startAbility(ohos.aafwk.content.Intent,int) 被调用后调用。
参数:
参数名称 | 参数描述 |
---|---|
enterAnim | 指示传入ability的动画资源 ID。 |
exitAnim | 表示传出ability的动画资源 ID。 |
isUpdatingConfigurations
boolean isUpdatingConfigurations()
检查此ability的配置是否正在更改
通常,此类更改信息在 Ability.onStop() 中用于确定如何处理此ability引用的资源。
返回:
如果配置正在更改,例如,如果设备的显示方向正在更改,则返回 true; 否则返回 false。
setTheme
void setTheme(int themeId)
根据指定的主题 ID 设置此 Context 的主题。
参数:
参数名称 | 参数描述 |
---|---|
themeId | 表示要设置的主题的资源ID。 |
getTheme
Theme getTheme()
获取此 Context 的主题。
此方法仅在通过调用 setTheme(int) 设置主题时有效。
返回:
theme 返回此 Context 的主题。
getThemeId
int getThemeId()
获取此 Context 的主题 ID。
返回:
int 返回此 Context 的主题 ID。
setPattern
void setPattern(int patternId)
根据指定的模式 ID 设置此上下文的模式。
参数:
参数名称 | 参数描述 |
---|---|
patternId | 指示要设置的模式的资源 ID。 |
getPattern
Pattern getPattern()
获取此 Context 的模式。
此方法仅在通过调用 setPattern(int) 设置模式时有效。
返回:
pattern 返回此上下文的模式。
getAppType
String getAppType()
获取此应用程序的类型。
返回:
如果此应用程序是系统应用程序,则返回系统; 如果在 Ohos AppGallery 中发布,则返回正常; 如果由第三方供应商发布,则返回其他; 如果查询失败,则返回一个空字符串。
getResourceManager
ResourceManager getResourceManager(Configuration configuration)
根据指定的 Configuration 对象获取资源管理器。
参数:
参数名称 | 参数描述 |
---|---|
configuration | 表示包含资源配置信息的Configuration对象。 |
返回:
返回获取到的 ResourceManager 对象。
getLastStoredDataWhenConfigChanged
Object getLastStoredDataWhenConfigChanged()
当系统配置发生变化时,获取通过 Ability.onStoreDataWhenConfigChange() 保存的最新数据。
返回:
返回保存的数据对象。
printDrawnCompleted
void printDrawnCompleted()
打印出系统完成绘制此页面ability所需的时间。
compelVerifyPermission
void compelVerifyPermission(String permission, String message)
检查是否已将指定权限授予调用进程,如果未授予权限,则抛出 SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果调用进程没有指定的权限,则抛出此异常。 |
compelVerifyUriPermission
void compelVerifyUriPermission(Uri uri, int modeFlags, String message)
检查调用进程是否有访问指定URI的权限,如果没有权限则抛出SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
uri | 指示要检查的 URI,此参数不能为空。 |
modeFlags | 指示要检查的访问模式。 该值可以是 ohos.aafwk.content.Intent#FLAG_AUTH_READ_URI_PERMISSION、ohos.aafwk.content.Intent#FLAG_AUTH_WRITE_URI_PERMISSION 或它们的组合。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果调用进程没有权限,则抛出此异常。 |
compelVerifyCallerPermission
void compelVerifyCallerPermission(String permission, String message)
检查是否已为调用进程授予进程间通信 (IPC) 的指定权限,如果未授予该权限,则抛出 SecurityException。 如果您当前未参与 IPC,此方法也会引发 SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果调用进程没有指定的权限或者您当前未参与 IPC,则引发此异常。 |
compelVerifyCallerUriPermission
void compelVerifyCallerUriPermission(Uri uri, int modeFlags, String message)
检查IPC的调用进程是否有权限访问指定的URI,如果没有权限则抛出SecurityException。 如果您当前未参与 IPC,此方法也会引发 SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
uri | 指示要检查的 URI。 此参数不能为空。 |
modeFlags | 指示要检查的访问模式。 该值可以是 ohos.aafwk.content.Intent#FLAG_AUTH_READ_URI_PERMISSION、ohos.aafwk.content.Intent#FLAG_AUTH_WRITE_URI_PERMISSION 或它们的组合。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果调用进程没有权限或者您当前未参与 IPC,则抛出此异常。 |
compelVerifyPermission
void compelVerifyPermission(String permission, int pid, int uid, String message)
检查pid和uid标识的进程是否已授予指定权限,如果未授予权限,则抛出SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
permission | 表示检查的权限。 |
pid | 指示要检查的进程的 ID。 |
uid | 指示要检查的进程的 UID。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果具有指定 PID 和 UID 的进程没有指定的权限,则抛出此异常。 |
compelVerifyUriPermission
void compelVerifyUriPermission(Uri uri, int pid, int uid, int modeFlags, String message)
检查pid和uid标识的进程是否有权限访问指定的URI,如果没有权限则抛出SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
uri | 指示要检查的 URI。 此参数不能为空。 |
pid | 指示要检查的进程的 ID。 |
uid | 指示要检查的进程的 UID。 |
modeFlags | 指示要检查的访问模式。 该值可以是 ohos.aafwk.content.Intent#FLAG_AUTH_READ_URI_PERMISSION、ohos.aafwk.content.Intent#FLAG_AUTH_WRITE_URI_PERMISSION 或它们的组合。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果具有指定 PID 和 UID 的进程没有权限,则抛出此异常。 |
compelVerifyUriPermission
void compelVerifyUriPermission(Uri uri, String readPermission, String writePermission, int pid, int uid, int modeFlags, String message)
检查pid和uid标识的进程是否指定了读写权限以及访问指定URI的权限,如果没有权限则抛出SecurityException。
参数:
参数名称 | 参数描述 |
---|---|
uri | 指示要检查的 URI。 此参数不能为空。 |
readPermission | 表示要检查的读取权限。 |
writePermission | 表示要检查的写权限。 |
pid | 指示要检查的进程的 ID。 |
uid | 指示要检查的进程的 UID。 |
modeFlags | 指示要检查的访问模式。 该值可以是 ohos.aafwk.content.Intent#FLAG_AUTH_READ_URI_PERMISSION、ohos.aafwk.content.Intent#FLAG_AUTH_WRITE_URI_PERMISSION 或它们的组合。 |
message | 指示抛出 SecurityException 时要显示的信息。 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果具有指定 PID 和 UID 的进程没有权限,则抛出此异常。 |
getColor
int getColor(int resId)
根据指定的资源 ID 获取此 Context 的颜色。
参数:
参数名称 | 参数描述 |
---|---|
resId | 表示要获取的颜色的资源ID。 |
返回:
返回此上下文的颜色值。
getString
String getString(int resId)
根据指定的资源 ID 获取此 Context 的字符串。
参数:
参数名称 | 参数描述 |
---|---|
resId | 表示要获取的字符串的资源ID。 |
返回:
返回此上下文的字符串。
getString
String getString(int resId, Object... formatArgs)
根据指定的资源 ID 和 formatArgs 获取此 Context 的字符串。
参数:
参数名称 | 参数描述 |
---|---|
resId | 表示要获取的字符串的资源ID。 |
formatArgs | 指示用于替换的格式化对象。 |
返回:
返回此上下文的字符串。
getStringArray
String[] getStringArray(int resId)
根据指定的资源 ID 获取此 Context 的字符串数组。
参数:
参数名称 | 参数描述 |
---|---|
resId | 表示要获取的字符串数组的资源ID。 |
返回:
返回此 Context 的字符串数组。
getIntArray
int[] getIntArray(int resId)
根据指定的资源 ID 获取此 Context 的整数数组。
参数:
参数名称 | 参数描述 |
---|---|
resId | 表示要获取的整数数组的资源ID。 |
返回:
返回此 Context 的整数数组。
getProcessName
String getProcessName()
获取当前进程的名称。
返回:
返回当前进程名称。
getAbilityPackageContext
Context getAbilityPackageContext()
获取此ability的 Context 对象。
此方法不能用于获取应用程序的上下文。
返回:
返回此ability的上下文对象。
getHapModuleInfo
HapModuleInfo getHapModuleInfo()
获取应用程序的 HapModuleInfo 对象。
返回:
返回应用程序的 HapModuleInfo 对象。
getCaller
Uri getCaller()
获取有关此能力调用者的信息。
返回:
返回调用者信息。
setColorMode
void setColorMode(int mode)
设置颜色模式。
参数:
参数名称 | 参数描述 |
---|---|
mode | 颜色模式的值。 |
getColorMode
int getColorMode()
获取颜色模式。
返回:
返回颜色模式值。
更多建议: