1# @ohos.app.ability.autoStartupManager(autoStartupManager)(系统接口) 2 3<!--Kit: Ability Kit--> 4<!--Subsystem: Ability--> 5<!--Owner: @zhu-feimo; @Luobniz21--> 6<!--Designer: @ccllee1--> 7<!--Tester: @lixueqing513--> 8<!--Adviser: @huipeizi--> 9 10autoStartupManager模块提供应用开机自启动状态的监听能力,允许开发者通过回调机制感知应用自启动状态的变化。 11 12> **说明:** 13> 14> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 15> 16> 本模块接口仅可在Stage模型下使用。 17> 18> 本模块为系统接口。 19 20## 导入模块 21 22```ts 23import { autoStartupManager } from '@kit.AbilityKit'; 24``` 25 26## on 27 28on(type: 'systemAutoStartup', callback: AutoStartupCallback): void 29 30注册监听应用组件开机自启动状态变化的回调函数。 31 32**需要权限**:ohos.permission.MANAGE_APP_BOOT 33 34**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 35 36**参数**: 37 38| 参数名 | 类型 | 必填 | 说明 | 39| --------- | ---------------------------------------- | ---- | -------------- | 40| type | string | 是 | 固定取值“systemAutoStartup”,表示为系统应用所调用。 | 41| callback | [AutoStartupCallback](js-apis-inner-application-autoStartupCallback-sys.md) | 是 | 监听应用组件开机自启动状态变化的回调对象。 | 42 43**错误码:** 44 45以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 46 47| 错误码ID | 错误信息 | 48| -------- | -------------------------------- | 49| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 50| 202 | Permission denied, non-system app called system api. | 51| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 52| 16000050 | Internal error. | 53 54**示例**: 55 56```ts 57import { autoStartupManager, common } from '@kit.AbilityKit'; 58import { BusinessError } from '@kit.BasicServicesKit'; 59 60try { 61 autoStartupManager.on('systemAutoStartup', { 62 onAutoStartupOn(data: common.AutoStartupInfo) { 63 console.info(`autostartupmanager onAutoStartupOn, data: ${JSON.stringify(data)}.`); 64 }, 65 onAutoStartupOff(data: common.AutoStartupInfo) { 66 console.info(`autostartupmanager onAutoStartupOff, data: ${JSON.stringify(data)}.`); 67 } 68 }); 69} catch (err) { 70 let code = (err as BusinessError).code; 71 let msg = (err as BusinessError).message; 72 console.error(`autostartupmanager on failed, err code: ${code}, err msg: ${msg}.`); 73} 74``` 75 76## off 77 78off(type: 'systemAutoStartup', callback?: AutoStartupCallback): void 79 80注销监听应用组件开机自启动状态变化的回调函数。 81 82**需要权限**:ohos.permission.MANAGE_APP_BOOT 83 84**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 85 86**参数**: 87 88| 参数名 | 类型 | 必填 | 说明 | 89| --------- | ---------------------------------------- | ---- | -------------- | 90| type | string | 是 | 固定取值“systemAutoStartup”,表示为系统应用所调用。 | 91| callback | [AutoStartupCallback](js-apis-inner-application-autoStartupCallback-sys.md) | 否 | 监听应用组件开机自启动状态变化的回调对象。 | 92 93**错误码:** 94 95以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 96 97| 错误码ID | 错误信息 | 98| -------- | -------------------------------- | 99| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 100| 202 | Permission denied, non-system app called system api. | 101| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 102| 16000050 | Internal error. | 103 104**示例**: 105 106```ts 107import { autoStartupManager, common } from '@kit.AbilityKit'; 108import { BusinessError } from '@kit.BasicServicesKit'; 109 110try { 111 autoStartupManager.off('systemAutoStartup', { 112 onAutoStartupOn(data: common.AutoStartupInfo) { 113 console.info(`autostartupmanager onAutoStartupOn, data: ${JSON.stringify(data)}.`); 114 }, 115 onAutoStartupOff(data: common.AutoStartupInfo) { 116 console.info(`autostartupmanager onAutoStartupOff, data: ${JSON.stringify(data)}.`); 117 } 118 }); 119} catch (err) { 120 let code = (err as BusinessError).code; 121 let msg = (err as BusinessError).message; 122 console.error(`autostartupmanager on failed, err code: ${code}, err msg: ${msg}.`); 123} 124``` 125 126## setApplicationAutoStartup 127 128setApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback\<void\>): void 129 130设置应用组件开机自启动。使用callback异步回调。 131 132**需要权限**:ohos.permission.MANAGE_APP_BOOT 133 134**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 135 136**设备行为差异**: 137- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 138- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 139 140**参数**: 141 142| 参数名 | 类型 | 必填 | 说明 | 143| --------- | ---------------------------------------- | ---- | -------------- | 144| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | 是 | 要设置的开机自启动应用组件信息。 | 145| callback | AsyncCallback\<void\> | 是 | 回调函数。当设置应用组件开机自启动成功,err为undefined,否则为错误对象。 | 146 147**错误码**: 148 149以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 150 151| 错误码ID | 错误信息 | 152| -------- | -------------------------------------------- | 153| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 154| 202 | Permission denied, non-system app called system api. | 155| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 156| 16000004 | Cannot start an invisible component. | 157| 16000013 | The application is controlled by EDM. | 158| 16000050 | Internal error. | 159 160**示例**: 161 162```ts 163import { autoStartupManager } from '@kit.AbilityKit'; 164import { BusinessError } from '@kit.BasicServicesKit'; 165 166try { 167 autoStartupManager.setApplicationAutoStartup({ 168 bundleName: 'com.example.autostartupapp', 169 abilityName: 'EntryAbility' 170 }, (err: BusinessError) => { 171 if (err) { 172 console.error(`setApplicationAutoStartup failed, err code: ${err.code}, err msg: ${err.message}.`); 173 return; 174 } 175 console.info(`setApplicationAutoStartup success.`); 176 }); 177} catch (err) { 178 let code = (err as BusinessError).code; 179 let msg = (err as BusinessError).message; 180 console.error(`setApplicationAutoStartup failed, err code: ${code}, err msg: ${msg}.`); 181} 182``` 183 184## setApplicationAutoStartup 185 186setApplicationAutoStartup(info: AutoStartupInfo): Promise\<void\> 187 188设置应用组件开机自启动。使用Promise异步回调。 189 190**需要权限**:ohos.permission.MANAGE_APP_BOOT 191 192**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 193 194**设备行为差异**: 195- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 196- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 197 198**参数**: 199 200| 参数名 | 类型 | 必填 | 说明 | 201| ------ | --------------- | ---- | ---------------------------- | 202| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | 是 | 要设置的开机自启动应用组件信息。 | 203 204**返回值:** 205 206| 类型 | 说明 | 207| ------------- | ------------------------------------------------------------ | 208| Promise\<void\> | Promise对象。无返回结果的Promise对象。 | 209 210**错误码**: 211 212以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 213 214| 错误码ID | 错误信息 | 215| -------- | -------------------------------------------- | 216| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 217| 202 | Permission denied, non-system app called system api. | 218| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 219| 16000004 | Cannot start an invisible component. | 220| 16000013 | The application is controlled by EDM. | 221| 16000050 | Internal error. | 222 223**示例**: 224 225```ts 226import { autoStartupManager } from '@kit.AbilityKit'; 227import { BusinessError } from '@kit.BasicServicesKit'; 228 229try { 230 autoStartupManager.setApplicationAutoStartup({ 231 bundleName: 'com.example.autostartupapp', 232 abilityName: 'EntryAbility' 233 }).then((data: void) => { 234 console.info(`setApplicationAutoStartup success.`); 235 }).catch((err: BusinessError) => { 236 console.error(`setApplicationAutoStartup failed, err code: ${err.code}, err msg: ${err.message}.`); 237 }); 238} catch (err) { 239 let code = (err as BusinessError).code; 240 let msg = (err as BusinessError).message; 241 console.error(`setApplicationAutoStartup failed, err code: ${code}, err msg: ${msg}.`); 242} 243``` 244 245## cancelApplicationAutoStartup 246 247cancelApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback\<void\>): void 248 249取消应用组件开机自启动。使用callback异步回调。 250 251**需要权限**:ohos.permission.MANAGE_APP_BOOT 252 253**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 254 255**设备行为差异**: 256- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 257- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 258 259**参数**: 260 261| 参数名 | 类型 | 必填 | 说明 | 262| --------- | ---------------------------------------- | ---- | -------------- | 263| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | 是 | 要取消的开机自启动应用组件信息。 | 264| callback | AsyncCallback\<void\> | 是 | 回调函数。当取消应用组件开机自启动成功,err为undefined,否则为错误对象。 | 265 266**错误码**: 267 268以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 269 270| 错误码ID | 错误信息 | 271| -------- | -------------------------------------------- | 272| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 273| 202 | Permission denied, non-system app called system api. | 274| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 275| 16000004 | Cannot start an invisible component. | 276| 16000013 | The application is controlled by EDM. | 277| 16000050 | Internal error. | 278 279**示例**: 280 281```ts 282import { autoStartupManager } from '@kit.AbilityKit'; 283import { BusinessError } from '@kit.BasicServicesKit'; 284 285try { 286 autoStartupManager.cancelApplicationAutoStartup({ 287 bundleName: 'com.example.autostartupapp', 288 abilityName: 'EntryAbility' 289 }, (err: BusinessError) => { 290 if (err) { 291 console.error(`cancelApplicationAutoStartup failed, err code: ${err.code}, msg: ${err.message}.`); 292 return; 293 } 294 console.info(`cancelApplicationAutoStartup success.`); 295 }); 296} catch (err) { 297 let code = (err as BusinessError).code; 298 let msg = (err as BusinessError).message; 299 console.error(`cancelApplicationAutoStartup failed, err code: ${code}, err msg: ${msg}.`); 300} 301``` 302 303## cancelApplicationAutoStartup 304 305cancelApplicationAutoStartup(info: AutoStartupInfo): Promise\<void\> 306 307取消应用组件开机自启动。使用Promise异步回调。 308 309**需要权限**:ohos.permission.MANAGE_APP_BOOT 310 311**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 312 313**设备行为差异**: 314- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 315- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 316 317**参数**: 318 319| 参数名 | 类型 | 必填 | 说明 | 320| --------- | ---------------------------------------- | ---- | -------------- | 321| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | 是 | 要取消的开机自启动应用组件信息。 | 322 323**返回值:** 324 325| 类型 | 说明 | 326| ------------- | ------------------------------------------------------------ | 327| Promise\<void\> | Promise对象。无返回结果的Promise对象。 | 328 329**错误码**: 330 331以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 332 333| 错误码ID | 错误信息 | 334| -------- | -------------------------------------------- | 335| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 336| 202 | Permission denied, non-system app called system api. | 337| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 338| 16000004 | Cannot start an invisible component. | 339| 16000013 | The application is controlled by EDM. | 340| 16000050 | Internal error. | 341 342**示例**: 343 344```ts 345import { autoStartupManager } from '@kit.AbilityKit'; 346import { BusinessError } from '@kit.BasicServicesKit'; 347 348try { 349 autoStartupManager.cancelApplicationAutoStartup({ 350 bundleName: 'com.example.autostartupapp', 351 abilityName: 'EntryAbility' 352 }).then(() => { 353 console.info(`cancelApplicationAutoStartup success.`); 354 }).catch((err: BusinessError) => { 355 console.error(`cancelApplicationAutoStartup failed, err code: ${err.code}, msg: ${err.message}.`); 356 }); 357} catch (err) { 358 let code = (err as BusinessError).code; 359 let msg = (err as BusinessError).message; 360 console.error(`cancelApplicationAutoStartup failed, err code: ${code}, err msg: ${msg}.`); 361} 362``` 363 364## queryAllAutoStartupApplications 365 366queryAllAutoStartupApplications(callback: AsyncCallback\<Array\<AutoStartupInfo\>\>): void 367 368查询自启动应用组件信息。使用callback异步回调。 369 370**需要权限**:ohos.permission.MANAGE_APP_BOOT 371 372**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 373 374**设备行为差异**: 375- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 376- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 377 378**参数**: 379 380| 参数名 | 类型 | 必填 | 说明 | 381| --------- | ---------------------------------------- | ---- | -------------- | 382| callback | AsyncCallback\<Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>\> | 是 | 回调函数。当查询自启动应用组件信息成功,err为undefined,data为获取到的Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>;否则为错误对象。 | 383 384**错误码**: 385 386以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 387 388| 错误码ID | 错误信息 | 389| -------- | -------------------------------------------- | 390| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 391| 202 | Permission denied, non-system app called system api. | 392| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 393| 16000050 | Internal error. | 394 395**示例**: 396 397```ts 398import { autoStartupManager, common } from '@kit.AbilityKit'; 399import { BusinessError } from '@kit.BasicServicesKit'; 400 401try { 402 autoStartupManager.queryAllAutoStartupApplications((err: BusinessError, data: common.AutoStartupInfo[]) => { 403 if (err) { 404 console.error(`queryAllAutoStartupApplications failed, err code: ${err.code}, err msg: ${err.message}.`); 405 return; 406 } 407 console.info(`queryAllAutoStartupApplications success, data: ${JSON.stringify(data)}.`); 408 }); 409} catch (err) { 410 let code = (err as BusinessError).code; 411 let msg = (err as BusinessError).message; 412 console.error(`queryAllAutoStartupApplications failed, err code: ${code}, err msg: ${msg}.`); 413} 414``` 415 416## queryAllAutoStartupApplications 417 418 queryAllAutoStartupApplications(): Promise\<Array\<AutoStartupInfo\>\> 419 420查询自启动应用组件信息。使用Promise异步回调。 421 422**需要权限**:ohos.permission.MANAGE_APP_BOOT 423 424**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 425 426**设备行为差异**: 427- 从API version 18开始,该接口仅在2in1和Wearable设备中可正常调用,在其他设备上返回16000050错误码。 428- 对于API version 18之前版本,该接口仅在2in1设备中可正常调用,在其他设备上返回16000050错误码。 429 430**返回值:** 431 432| 类型 | 说明 | 433| ------------------------------- | ------------------------------------------------------------ | 434| Promise\<Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>\> | Promise对象,返回自启动应用组件信息。 | 435 436**错误码**: 437 438以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 439 440| 错误码ID | 错误信息 | 441| -------- | -------------------------------------------- | 442| 201 | Permission denied, interface caller does not have permission "ohos.permission.MANAGE_APP_BOOT". | 443| 202 | Permission denied, non-system app called system api. | 444| 401 | The parameter check failed. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types. | 445| 16000050 | Internal error. | 446 447**示例**: 448 449```ts 450import { autoStartupManager, common } from '@kit.AbilityKit'; 451import { BusinessError } from '@kit.BasicServicesKit'; 452 453try { 454 autoStartupManager.queryAllAutoStartupApplications().then((data: common.AutoStartupInfo[]) => { 455 console.info(`queryAllAutoStartupApplications success, data: ${JSON.stringify(data)}.`); 456 }).catch((err: BusinessError) => { 457 console.error(`queryAllAutoStartupApplications failed, err code: ${err.code}, err msg: ${err.message}.`); 458 }); 459} catch (err) { 460 let code = (err as BusinessError).code; 461 let msg = (err as BusinessError).message; 462 console.error(`queryAllAutoStartupApplications failed, err code: ${code}, err msg: ${msg}.`); 463} 464``` 465