1# @ohos.app.ability.autoStartupManager (autoStartupManager) (System API)
2
3The **autoStartupManager** module provides APIs for listening for auto-startup status changes of application components and setting application components to automatically start upon system boot.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 11. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs of this module can be used only in the stage model.
10>
11> The APIs provided by this module are system APIs.
12
13## Modules to Import
14
15```ts
16import { autoStartupManager } from '@kit.AbilityKit';
17```
18
19## on
20
21on(type: 'systemAutoStartup', callback: AutoStartupCallback): void
22
23Subscribes to auto-startup status change events of an application component.
24
25**Required permissions**: ohos.permission.MANAGE_APP_BOOT
26
27**System capability**: SystemCapability.Ability.AbilityRuntime.Core
28
29**Parameters**
30
31| Name       | Type                                      | Mandatory  | Description            |
32| --------- | ---------------------------------------- | ---- | -------------- |
33| type | string | Yes   | Event type. The value is fixed at **systemAutoStartup**, which can be called only by system applications.|
34| callback  | [AutoStartupCallback](js-apis-inner-application-autoStartupCallback-sys.md)   | Yes   | Callback used for subscription.     |
35
36**Example**
37
38```ts
39import { autoStartupManager, common } from '@kit.AbilityKit';
40
41try {
42  autoStartupManager.on('systemAutoStartup', {
43    onAutoStartupOn(data: common.AutoStartupInfo) {
44      console.info('===> autostartupmanager onAutoStartupOn data: ' + JSON.stringify(data));
45    },
46    onAutoStartupOff(data: common.AutoStartupInfo) {
47      console.info('===> autostartupmanager onAutoStartupOff data: ' + JSON.stringify(data));
48    }
49  });
50} catch (err) {
51  console.info('===> autostartupmanager on throw err: ' + JSON.stringify(err));
52}
53```
54
55## off
56
57off(type: 'systemAutoStartup', callback?: AutoStartupCallback): void
58
59Unsubscribes from auto-startup status change events of an application component.
60
61**Required permissions**: ohos.permission.MANAGE_APP_BOOT
62
63**System capability**: SystemCapability.Ability.AbilityRuntime.Core
64
65**Parameters**
66
67| Name       | Type                                      | Mandatory  | Description            |
68| --------- | ---------------------------------------- | ---- | -------------- |
69| type | string              | Yes   | Event type. The value is fixed at **systemAutoStartup**, which can be called only by system applications.|
70| callback | [AutoStartupCallback](js-apis-inner-application-autoStartupCallback-sys.md)   | No| Callback used for unsubscription.|
71
72**Example**
73
74```ts
75import { autoStartupManager, common } from '@kit.AbilityKit';
76
77try {
78  autoStartupManager.off('systemAutoStartup', {
79    onAutoStartupOn(data: common.AutoStartupInfo) {
80      console.info('===> autostartupmanager onAutoStartupOn data: ' + JSON.stringify(data));
81    },
82    onAutoStartupOff(data: common.AutoStartupInfo) {
83      console.info('===> autostartupmanager onAutoStartupOff data: ' + JSON.stringify(data));
84    }
85  });
86} catch (err) {
87  console.info('===> autostartupmanager off throw err: ' + JSON.stringify(err));
88}
89```
90
91## setApplicationAutoStartup
92
93setApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback\<void\>): void
94
95Sets an application component to automatically start upon system boot. This API uses an asynchronous callback to return the result.
96
97**Required permissions**: ohos.permission.MANAGE_APP_BOOT
98
99**System capability**: SystemCapability.Ability.AbilityRuntime.Core
100
101**Parameters**
102
103| Name       | Type                                      | Mandatory  | Description            |
104| --------- | ---------------------------------------- | ---- | -------------- |
105| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | Yes   | Information about the target application component.|
106| callback | AsyncCallback\<void\> | Yes| Callback used to return the result. If the setting is successful, **err** is **undefined**; otherwise, **err** is an error object.|
107
108**Error codes**
109
110| ID| Error Message                                    |
111| -------- | -------------------------------------------- |
112| 16000004 | Failed to start the invisible ability.           |
113| 16000013 | The application is controlled by EDM.        |
114| 16000050 | Internal error.                              |
115
116For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
117
118**Example**
119
120```ts
121import { autoStartupManager } from '@kit.AbilityKit';
122
123try {
124  autoStartupManager.setApplicationAutoStartup({
125    bundleName: 'com.example.autostartupapp',
126    abilityName: 'EntryAbility'
127  }, (err, data) => {
128    console.info('====> setApplicationAutoStartup: ' + JSON.stringify(err) + ' data: ' + JSON.stringify(data));
129  });
130} catch (err) {
131  console.info('====> setApplicationAutoStartup throw err: ' + JSON.stringify(err));
132}
133```
134
135## setApplicationAutoStartup
136
137setApplicationAutoStartup(info: AutoStartupInfo): Promise\<void\>
138
139Sets an application component to automatically start upon system boot. This API uses a promise to return the result.
140
141**Required permissions**: ohos.permission.MANAGE_APP_BOOT
142
143**System capability**: SystemCapability.Ability.AbilityRuntime.Core
144
145**Parameters**
146
147| Name| Type           | Mandatory| Description                        |
148| ------ | --------------- | ---- | ---------------------------- |
149| info   | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md) | Yes  | Information about the target application component.|
150
151**Return value**
152
153| Type         | Description                                                        |
154| ------------- | ------------------------------------------------------------ |
155| Promise\<void\> | Promise that returns no value.|
156
157**Error codes**
158
159| ID| Error Message                                    |
160| -------- | -------------------------------------------- |
161| 16000004 | Failed to start the invisible ability.           |
162| 16000013 | The application is controlled by EDM.        |
163| 16000050 | Internal error.                              |
164
165For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
166
167**Example**
168
169```ts
170import { autoStartupManager } from '@kit.AbilityKit';
171import { BusinessError } from '@kit.BasicServicesKit';
172
173try {
174  autoStartupManager.setApplicationAutoStartup({
175    bundleName: 'com.example.autostartupapp',
176    abilityName: 'EntryAbility'
177  }).then((data: void) => {
178    console.info('====> setApplicationAutoStartup data: ' + JSON.stringify(data));
179  }).catch((err: BusinessError) => {
180    console.info('====> setApplicationAutoStartup err: ' + JSON.stringify(err));
181  });
182} catch (err) {
183  console.info('====> setApplicationAutoStartup throw err: ' + JSON.stringify(err));
184}
185```
186
187## cancelApplicationAutoStartup
188
189cancelApplicationAutoStartup(info: AutoStartupInfo, callback: AsyncCallback\<void\>): void
190
191Cancels the auto-startup setting for an application component. This API uses an asynchronous callback to return the result.
192
193**Required permissions**: ohos.permission.MANAGE_APP_BOOT
194
195**System capability**: SystemCapability.Ability.AbilityRuntime.Core
196
197**Parameters**
198
199| Name       | Type                                      | Mandatory  | Description            |
200| --------- | ---------------------------------------- | ---- | -------------- |
201| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)   | Yes| Information about the target application component.|
202| callback | AsyncCallback\<void\> | Yes   | Callback used to return the result. If the cancellation is successful, **err** is **undefined**; otherwise, **err** is an error object.|
203
204**Error codes**
205
206| ID| Error Message                                    |
207| -------- | -------------------------------------------- |
208| 16000004 | Failed to start the invisible ability.           |
209| 16000013 | The application is controlled by EDM.        |
210| 16000050 | Internal error.                              |
211
212For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
213
214**Example**
215
216```ts
217import { autoStartupManager } from '@kit.AbilityKit';
218
219try {
220  autoStartupManager.cancelApplicationAutoStartup({
221    bundleName: 'com.example.autostartupapp',
222    abilityName: 'EntryAbility'
223  }, (err, data) => {
224    console.info('====> cancelApplicationAutoStartup err: ' + JSON.stringify(err) + ' data: ' + JSON.stringify(data));
225  });
226} catch (err) {
227  console.info('====> cancelApplicationAutoStartup throw err: ' + JSON.stringify(err));
228}
229```
230
231## cancelApplicationAutoStartup
232
233cancelApplicationAutoStartup(info: AutoStartupInfo): Promise\<void\>
234
235Cancels the auto-startup setting for an application component. This API uses a promise to return the result.
236
237**Required permissions**: ohos.permission.MANAGE_APP_BOOT
238
239**System capability**: SystemCapability.Ability.AbilityRuntime.Core
240
241**Parameters**
242
243| Name       | Type                                      | Mandatory  | Description            |
244| --------- | ---------------------------------------- | ---- | -------------- |
245| info | [AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)   | Yes| Information about the target application component.|
246
247**Return value**
248
249| Type         | Description                                                        |
250| ------------- | ------------------------------------------------------------ |
251| Promise\<void\> | Promise that returns no value.|
252
253**Error codes**
254
255| ID| Error Message                                    |
256| -------- | -------------------------------------------- |
257| 16000004 | Failed to start the invisible ability.           |
258| 16000013 | The application is controlled by EDM.        |
259| 16000050 | Internal error.                              |
260
261For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
262
263**Example**
264
265```ts
266import { autoStartupManager } from '@kit.AbilityKit';
267import { BusinessError } from '@kit.BasicServicesKit';
268
269try {
270  autoStartupManager.cancelApplicationAutoStartup({
271    bundleName: 'com.example.autostartupapp',
272    abilityName: 'EntryAbility'
273  }).then((data: void) => {
274    console.info('====> cancelApplicationAutoStartup data: ' + JSON.stringify(data));
275  }).catch((err: BusinessError) => {
276    console.info('====> cancelApplicationAutoStartup err: ' + JSON.stringify(err));
277  });
278} catch (err) {
279  console.info('====> cancelApplicationAutoStartup throw err: ' + JSON.stringify(err));
280}
281```
282
283## queryAllAutoStartupApplications
284
285queryAllAutoStartupApplications(callback: AsyncCallback\<Array\<AutoStartupInfo\>\>): void
286
287Obtains information about all auto-startup application components. This API uses an asynchronous callback to return the result.
288
289**Required permissions**: ohos.permission.MANAGE_APP_BOOT
290
291**System capability**: SystemCapability.Ability.AbilityRuntime.Core
292
293**Parameters**
294
295| Name       | Type                                      | Mandatory  | Description            |
296| --------- | ---------------------------------------- | ---- | -------------- |
297| callback  | AsyncCallback\<Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>\> | Yes   | Callback used to return the result. If the information is obtained, **err** is **undefined** and **data** is **Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>**; otherwise, **err** is an error object.     |
298
299**Error codes**
300
301| ID| Error Message|
302| ------- | -------- |
303| 16000050 | Internal error. |
304
305For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
306
307**Example**
308
309```ts
310import { autoStartupManager } from '@kit.AbilityKit';
311
312try {
313  autoStartupManager.queryAllAutoStartupApplications((err, data) => {
314    console.info('====> queryAllAutoStartupApplications err: ' + JSON.stringify(err) + ' data: ' + JSON.stringify(data));
315  });
316} catch (err) {
317  console.info('====> queryAllAutoStartupApplications throw err: ' + JSON.stringify(err));
318}
319```
320
321## queryAllAutoStartupApplications
322
323 queryAllAutoStartupApplications(): Promise\<Array\<AutoStartupInfo\>\>
324
325Obtains information about all auto-startup application components. This API uses a promise to return the result.
326
327**Required permissions**: ohos.permission.MANAGE_APP_BOOT
328
329**System capability**: SystemCapability.Ability.AbilityRuntime.Core
330
331**Return value**
332
333| Type                           | Description                                                        |
334| ------------------------------- | ------------------------------------------------------------ |
335| Promise\<Array\<[AutoStartupInfo](js-apis-inner-application-autoStartupInfo-sys.md)\>\> | Promise used to return the information obtained.|
336
337**Error codes**
338
339| ID| Error Message|
340| ------- | -------- |
341| 16000050 | Internal error. |
342
343For details about the error codes, see [Ability Error Codes](errorcode-ability.md).
344
345**Example**
346
347```ts
348import { autoStartupManager, common } from '@kit.AbilityKit';
349import { BusinessError } from '@kit.BasicServicesKit';
350
351try {
352  autoStartupManager.queryAllAutoStartupApplications().then((autoStartupInfo: common.AutoStartupInfo[]) => {
353    console.info('====> queryAllAutoStartupApplications data: ' + JSON.stringify(autoStartupInfo));
354  }).catch((err: BusinessError) => {
355    console.info('====> queryAllAutoStartupApplications err: ' + JSON.stringify(err));
356  });
357} catch (err) {
358  console.info('====> queryAllAutoStartupApplications throw err: ' + JSON.stringify(err));
359}
360```
361