元能力变更说明
cl.ability.1 autoStartupManager自启动管理接口权限变更
访问级别
系统接口
变更原因
此前版本注册监听应用组件开机自启动状态变化、注销监听应用组件开机自启动状态变化、设置应用组件开机自启动、取消应用组件开机自启动及查询自启动应用组件信息接口对调用方只进行系统应用校验,未进行权限校验,存在安全风险,不符合OpenHarmony的API接口规范。
变更影响
影响接口调用权限,接口调用权限发生变更。 应用需要配置相应的权限,才可以正常使用。
API Level
11
变更发生版本
从Openharmony SDK OpenHarmony_4.1.5.5 开始
变更的接口
接口声明 | 变更前 | 变更后 |
---|---|---|
on(type: 'systemAutoStartup', callback: AutoStartupCallback) | 无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
off(type: 'systemAutoStartup', callback: AutoStartupCallback) | 无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
setApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback |
无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
setApplicationAutoStartup(info: AutoStartupInfo) | 无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
cancelApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback |
无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
cancelApplicationAutoStartup(info: AutoStartupInfo) | 无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
queryAllAutoStartupApplications(info: AutoStartupInfo, callback: AsyncCallback |
无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
queryAllAutoStartupApplications(info: AutoStartupInfo) | 无权限管控 | 需要ohos.permission.MANAGE_APP_BOOT权限 |
适配指导
调用on、off、setApplicationAutoStartup方法(callback方式)、setApplicationAutoStartup方法(promise方式)、cancelApplicationAutoStartup方法(callback方式)、cancelApplicationAutoStartup方法(promise方式)、queryAllAutoStartupApplications方法(callback方式)、queryAllAutoStartupApplications方法(promise方式)接口时,需申请相应的权限才可正常使用。
cl.ability.2 startAbilityByCall接口权限变更
访问级别
公开接口
变更原因
该接口为公开接口,与ohos.permission.ABILITY_BACKGROUND_COMMUNICATION权限级别不匹配,需要将接口权限修改为ohos.permission.DISTRIBUTED_DATASYNC权限,降低权限级别。
变更影响
影响接口调用权限,接口调用权限发生变更。 应用需要配置相应的权限,才可以正常使用。 变更后接口仅支持迁移场景下使用,后续将新增对应系统接口,支持更多场景使用。
API Level
9
变更发生版本
从Openharmony SDK OpenHarmony_4.1.6.1 开始
变更的接口
接口声明 | 变更前 | 变更后 |
---|---|---|
startAbilityByCall(want: Want): Promise |
需要ohos.permission.ABILITY_BACKGROUND_COMMUNICATION权限 | 需要ohos.permission.DISTRIBUTED_DATASYNC权限 |
适配指导
业务申请并配置ohos.permission.DISTRIBUTED_DATASYNC权限,仅用于迁移场景使用。
cl.ability.3 ApplicationContext开机自启动接口删除
访问级别
公开接口。
变更原因
根据安全隐私要求,删除ApplicationContext开机自启动接口,应用无法主动申请和设置自启状态。
变更影响
该变更为非兼容性变更。基于此前版本开发的应用,需删除ApplicationContext开机自启动接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
API Level
11
变更发生版本
从OpenHarmony SDK 4.1.6.5开始。
变更的接口/组件
on(type: 'abilityAutoStartup', callback: AutoStartupCallback): void;
off(type: 'abilityAutoStartup', callback?: AutoStartupCallback): void;
setAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
setAutoStartup(info: AutoStartupInfo): Promise<void>;
cancelAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
cancelAutoStartup(info: AutoStartupInfo): Promise<void>;
isAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<boolean>): void;
isAutoStartup(info: AutoStartupInfo): Promise<boolean>;
- 变更前:
/**
* Register the listener that watches for current application auto startup state.
*
* @param { 'abilityAutoStartup' } type - Indicates the type of event.
* @param { AutoStartupCallback } callback - Auto startup callback.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
on(type: 'abilityAutoStartup', callback: AutoStartupCallback): void;
/**
* Unregister listener that watches for current application auto startup state.
*
* @param { 'abilityAutoStartup' } type - Indicates the type of event.
* @param { AutoStartupCallback } [callback] - Auto startup callback.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
off(type: 'abilityAutoStartup', callback?: AutoStartupCallback): void;
/**
* Set current application auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @param { AsyncCallback<void> } callback - The callback of setAutoStartup.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
setAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
/**
* Set current application auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @returns { Promise<void> } The promise returned by the function.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
setAutoStartup(info: AutoStartupInfo): Promise<void>;
/**
* Cancel current application auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @param { AsyncCallback<void> } callback - The callback of cancelAutoStartup.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
cancelAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
/**
* Cancel current application auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @returns { Promise<void> } The promise returned by the function.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
cancelAutoStartup(info: AutoStartupInfo): Promise<void>;
/**
* Check if the current application is auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @param { AsyncCallback<boolean> } callback - The callback of isAutoStartup.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
isAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<boolean>): void;
/**
* Check if the current application is auto startup state.
*
* @param { AutoStartupInfo } info - The application info.
* @returns { Promise<boolean> } The promise returned by the function.
* @throws { BusinessError } 401 - The parameter check failed.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
isAutoStartup(info: AutoStartupInfo): Promise<boolean>;
适配指导
该类接口下线后,应用已无法使用该类接口。
cl.ability.4 AutoStartupInfo接口使用权限变更
访问级别
公开接口。
变更原因
ApplicationContext开机自启动接口删除后,AutoStartupInfo接口无三方应用使用场景,变更为系统接口。
变更影响
该变更为非兼容性变更。基于此前版本开发的应用,需删除AutoStartupInfo接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
API Level
11
变更发生版本
从OpenHarmony SDK 4.1.6.5开始。
变更的接口/组件
AutoStartupInfo {
bundleName: string;
moduleName?: string;
abilityName: string;
abilityTypeName?: string;
}
- 变更前:
/**
* Bundle name
*
* @type { string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
bundleName: string;
/**
* Module name
*
* @type { ?string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
moduleName?: string;
/**
* Ability Name
*
* @type { string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
abilityName: string;
/**
* Ability Type Name
*
* @type { ?string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
abilityTypeName?: string;
- 变更后:
/**
* Bundle name
*
* @type { string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
bundleName: string;
/**
* Module name
*
* @type { ?string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
moduleName?: string;
/**
* Ability Name
*
* @type { string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
abilityName: string;
/**
* Ability Type Name
*
* @type { ?string }
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
abilityTypeName?: string;
适配指导
该接口变更为系统接口后,三方应用无法使用。 系统应用可正常使用。 示例代码如下:
import AutoStartupManager from '@ohos.app.ability.autoStartupManager';
import { BusinessError } from '@ohos.base';
try {
AutoStartupManager.setApplicationAutoStartup({
bundleName: 'com.example.autostartupapp',
abilityName: 'EntryAbility'
}).then((data: void) => {
console.info('====> setApplicationAutoStartup data: ' + JSON.stringify(data));
}).catch((err: BusinessError) => {
console.info('====> setApplicationAutoStartup err: ' + JSON.stringify(err));
});
} catch (err) {
console.info('====> setApplicationAutoStartup throw err: ' + JSON.stringify(err));
}
cl.ability.5 AutoStartupCallback接口使用权限变更
访问级别
公开接口。
变更原因
ApplicationContext开机自启动接口删除后,AutoStartupCallback接口无三方应用使用场景,变更为系统接口。
变更影响
该变更为非兼容性变更。基于此前版本开发的应用,需删除AutoStartupCallback接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
API Level
11
变更发生版本
从OpenHarmony SDK 4.1.6.5开始。
变更的接口/组件
- 涉及接口
onAutoStartupOn(info: AutoStartupInfo): void;
onAutoStartupOff(info: AutoStartupInfo): void;
- 变更前:
/**
* When the application's auto startup state is set to on, this function is called.
*
* @param { AutoStartupInfo } info - Auto startup info.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
onAutoStartupOn(info: AutoStartupInfo): void;
/**
* When the application's auto startup state is set to off, this function is called.
*
* @param { AutoStartupInfo } info - Auto startup info.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @StageModelOnly
* @since 11
*/
onAutoStartupOff(info: AutoStartupInfo): void;
- 变更后:
/**
* When the application's auto startup state is set to on, this function is called.
*
* @param { AutoStartupInfo } info - Auto startup info.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
onAutoStartupOn(info: AutoStartupInfo): void;
/**
* When the application's auto startup state is set to off, this function is called.
*
* @param { AutoStartupInfo } info - Auto startup info.
* @syscap SystemCapability.Ability.AbilityRuntime.Core
* @systemapi
* @StageModelOnly
* @since 11
*/
onAutoStartupOff(info: AutoStartupInfo): void;
适配指导
该接口变更为系统接口后,三方应用已无法使用。 系统应用可正常使用。 示例代码如下:
import AutoStartupManager from '@ohos.app.ability.autoStartupManager';
import common from '@ohos.app.ability.common';
try {
AutoStartupManager.on('systemAutoStartup', {
onAutoStartupOn(data: common.AutoStartupInfo) {
console.info('===> autostartupmanager onAutoStartupOn data: ' + JSON.stringify(data));
},
onAutoStartupOff(data: common.AutoStartupInfo) {
console.info('===> autostartupmanager onAutoStartupOff data: ' + JSON.stringify(data));
}
});
} catch (err) {
console.info('===> autostartupmanager on throw err: ' + JSON.stringify(err));
}