1# 元能力子系统变更说明
2
3## cl.ability.1 ApplicationContext开机自启动接口删除
4
5**访问级别**
6
7公开接口。
8
9**变更原因**
10
11根据安全隐私要求,删除ApplicationContext开机自启动接口,应用无法主动申请和设置自启状态。
12
13**变更影响**
14
15该变更为非兼容性变更。基于此前版本开发的应用,需删除ApplicationContext开机自启动接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
16
17**API Level**
18
1911
20
21**变更发生版本**
22
23从OpenHarmony SDK 4.1.6.5开始。
24
25**变更的接口/组件**
26
27```js
28  on(type: 'abilityAutoStartup', callback: AutoStartupCallback): void;
29  off(type: 'abilityAutoStartup', callback?: AutoStartupCallback): void;
30  setAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
31  setAutoStartup(info: AutoStartupInfo): Promise<void>;
32  cancelAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
33  cancelAutoStartup(info: AutoStartupInfo): Promise<void>;
34  isAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<boolean>): void;
35  isAutoStartup(info: AutoStartupInfo): Promise<boolean>;
36```
37
38- 变更前:
39
40```js
41   /**
42   * Register the listener that watches for current application auto startup state.
43   *
44   * @param { 'abilityAutoStartup' } type - Indicates the type of event.
45   * @param { AutoStartupCallback } callback - Auto startup callback.
46   * @throws { BusinessError } 401 - The parameter check failed.
47   * @syscap SystemCapability.Ability.AbilityRuntime.Core
48   * @StageModelOnly
49   * @since 11
50   */
51  on(type: 'abilityAutoStartup', callback: AutoStartupCallback): void;
52
53  /**
54   * Unregister listener that watches for current application auto startup state.
55   *
56   * @param { 'abilityAutoStartup' } type - Indicates the type of event.
57   * @param { AutoStartupCallback } [callback] - Auto startup callback.
58   * @throws { BusinessError } 401 - The parameter check failed.
59   * @syscap SystemCapability.Ability.AbilityRuntime.Core
60   * @StageModelOnly
61   * @since 11
62   */
63  off(type: 'abilityAutoStartup', callback?: AutoStartupCallback): void;
64
65  /**
66   * Set current application auto startup state.
67   *
68   * @param { AutoStartupInfo } info - The application info.
69   * @param { AsyncCallback<void> } callback - The callback of setAutoStartup.
70   * @throws { BusinessError } 401 - The parameter check failed.
71   * @syscap SystemCapability.Ability.AbilityRuntime.Core
72   * @StageModelOnly
73   * @since 11
74   */
75  setAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
76
77  /**
78   * Set current application auto startup state.
79   *
80   * @param { AutoStartupInfo } info - The application info.
81   * @returns { Promise<void> } The promise returned by the function.
82   * @throws { BusinessError } 401 - The parameter check failed.
83   * @syscap SystemCapability.Ability.AbilityRuntime.Core
84   * @StageModelOnly
85   * @since 11
86   */
87  setAutoStartup(info: AutoStartupInfo): Promise<void>;
88
89  /**
90   * Cancel current application auto startup state.
91   *
92   * @param { AutoStartupInfo } info - The application info.
93   * @param { AsyncCallback<void> } callback - The callback of cancelAutoStartup.
94   * @throws { BusinessError } 401 - The parameter check failed.
95   * @syscap SystemCapability.Ability.AbilityRuntime.Core
96   * @StageModelOnly
97   * @since 11
98   */
99  cancelAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<void>): void;
100
101  /**
102   * Cancel current application auto startup state.
103   *
104   * @param { AutoStartupInfo } info - The application info.
105   * @returns { Promise<void> } The promise returned by the function.
106   * @throws { BusinessError } 401 - The parameter check failed.
107   * @syscap SystemCapability.Ability.AbilityRuntime.Core
108   * @StageModelOnly
109   * @since 11
110   */
111  cancelAutoStartup(info: AutoStartupInfo): Promise<void>;
112
113  /**
114   * Check if the current application is auto startup state.
115   *
116   * @param { AutoStartupInfo } info - The application info.
117   * @param { AsyncCallback<boolean> } callback - The callback of isAutoStartup.
118   * @throws { BusinessError } 401 - The parameter check failed.
119   * @syscap SystemCapability.Ability.AbilityRuntime.Core
120   * @StageModelOnly
121   * @since 11
122   */
123  isAutoStartup(info: AutoStartupInfo, callback: AsyncCallback<boolean>): void;
124
125  /**
126   * Check if the current application is auto startup state.
127   *
128   * @param { AutoStartupInfo } info - The application info.
129   * @returns { Promise<boolean> } The promise returned by the function.
130   * @throws { BusinessError } 401 - The parameter check failed.
131   * @syscap SystemCapability.Ability.AbilityRuntime.Core
132   * @StageModelOnly
133   * @since 11
134   */
135  isAutoStartup(info: AutoStartupInfo): Promise<boolean>;
136```
137
138**适配指导**
139
140该类接口下线后,应用已无法使用该类接口。
141
142
143## cl.ability.2 AutoStartupInfo接口使用权限变更
144
145**访问级别**
146
147公开接口。
148
149**变更原因**
150
151ApplicationContext开机自启动接口删除后,AutoStartupInfo接口无三方应用使用场景,变更为系统接口。
152
153**变更影响**
154
155该变更为非兼容性变更。基于此前版本开发的应用,需删除AutoStartupInfo接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
156
157**API Level**
158
15911
160
161**变更发生版本**
162
163从OpenHarmony SDK 4.1.6.5开始。
164
165**变更的接口/组件**
166
167```js
168  AutoStartupInfo {
169    bundleName: string;
170    moduleName?: string;
171    abilityName: string;
172    abilityTypeName?: string;
173  }
174```
175
176- 变更前:
177
178```js
179  /**
180   * Bundle name
181   *
182   * @type { string }
183   * @syscap SystemCapability.Ability.AbilityRuntime.Core
184   * @StageModelOnly
185   * @since 11
186   */
187  bundleName: string;
188
189  /**
190   * Module name
191   *
192   * @type { ?string }
193   * @syscap SystemCapability.Ability.AbilityRuntime.Core
194   * @StageModelOnly
195   * @since 11
196   */
197  moduleName?: string;
198
199  /**
200   * Ability Name
201   *
202   * @type { string }
203   * @syscap SystemCapability.Ability.AbilityRuntime.Core
204   * @StageModelOnly
205   * @since 11
206   */
207  abilityName: string;
208
209  /**
210   * Ability Type Name
211   *
212   * @type { ?string }
213   * @syscap SystemCapability.Ability.AbilityRuntime.Core
214   * @StageModelOnly
215   * @since 11
216   */
217  abilityTypeName?: string;
218```
219
220- 变更后:
221
222```js
223  /**
224   * Bundle name
225   *
226   * @type { string }
227   * @syscap SystemCapability.Ability.AbilityRuntime.Core
228   * @systemapi
229   * @StageModelOnly
230   * @since 11
231   */
232  bundleName: string;
233
234  /**
235   * Module name
236   *
237   * @type { ?string }
238   * @syscap SystemCapability.Ability.AbilityRuntime.Core
239   * @systemapi
240   * @StageModelOnly
241   * @since 11
242   */
243  moduleName?: string;
244
245  /**
246   * Ability Name
247   *
248   * @type { string }
249   * @syscap SystemCapability.Ability.AbilityRuntime.Core
250   * @systemapi
251   * @StageModelOnly
252   * @since 11
253   */
254  abilityName: string;
255
256  /**
257   * Ability Type Name
258   *
259   * @type { ?string }
260   * @syscap SystemCapability.Ability.AbilityRuntime.Core
261   * @systemapi
262   * @StageModelOnly
263   * @since 11
264   */
265  abilityTypeName?: string;
266```
267
268**适配指导**
269
270该接口变更为系统接口后,三方应用无法使用。
271系统应用可正常使用。
272示例代码如下:
273
274```ts
275import AutoStartupManager from '@ohos.app.ability.autoStartupManager';
276import { BusinessError } from '@ohos.base';
277
278try {
279  AutoStartupManager.setApplicationAutoStartup({
280    bundleName: 'com.example.autostartupapp',
281    abilityName: 'EntryAbility'
282  }).then((data: void) => {
283    console.info('====> setApplicationAutoStartup data: ' + JSON.stringify(data));
284  }).catch((err: BusinessError) => {
285    console.info('====> setApplicationAutoStartup err: ' + JSON.stringify(err));
286  });
287} catch (err) {
288  console.info('====> setApplicationAutoStartup throw err: ' + JSON.stringify(err));
289}
290```
291
292
293## cl.ability.3 AutoStartupCallback接口使用权限变更
294**访问级别**
295
296公开接口。
297
298**变更原因**
299
300ApplicationContext开机自启动接口删除后,AutoStartupCallback接口无三方应用使用场景,变更为系统接口。
301
302**变更影响**
303
304该变更为非兼容性变更。基于此前版本开发的应用,需删除AutoStartupCallback接口使用,变更前的接口已经不能正常使用,否则会影响原有功能。
305
306**API Level**
307
30811
309
310**变更发生版本**
311
312从OpenHarmony SDK 4.1.6.5开始。
313
314**变更的接口/组件**
315
316- 涉及接口
317
318```js
319  onAutoStartupOn(info: AutoStartupInfo): void;
320  onAutoStartupOff(info: AutoStartupInfo): void;
321```
322
323- 变更前:
324
325```js
326  /**
327   * When the application's auto startup state is set to on, this function is called.
328   *
329   * @param { AutoStartupInfo } info - Auto startup info.
330   * @syscap SystemCapability.Ability.AbilityRuntime.Core
331   * @StageModelOnly
332   * @since 11
333   */
334  onAutoStartupOn(info: AutoStartupInfo): void;
335
336  /**
337   * When the application's auto startup state is set to off, this function is called.
338   *
339   * @param { AutoStartupInfo } info - Auto startup info.
340   * @syscap SystemCapability.Ability.AbilityRuntime.Core
341   * @StageModelOnly
342   * @since 11
343   */
344  onAutoStartupOff(info: AutoStartupInfo): void;
345```
346
347- 变更后:
348
349```js
350  /**
351   * When the application's auto startup state is set to on, this function is called.
352   *
353   * @param { AutoStartupInfo } info - Auto startup info.
354   * @syscap SystemCapability.Ability.AbilityRuntime.Core
355   * @systemapi
356   * @StageModelOnly
357   * @since 11
358   */
359  onAutoStartupOn(info: AutoStartupInfo): void;
360
361  /**
362   * When the application's auto startup state is set to off, this function is called.
363   *
364   * @param { AutoStartupInfo } info - Auto startup info.
365   * @syscap SystemCapability.Ability.AbilityRuntime.Core
366   * @systemapi
367   * @StageModelOnly
368   * @since 11
369   */
370  onAutoStartupOff(info: AutoStartupInfo): void;
371```
372
373**适配指导**
374
375该接口变更为系统接口后,三方应用已无法使用。
376系统应用可正常使用。
377示例代码如下:
378
379```ts
380import AutoStartupManager from '@ohos.app.ability.autoStartupManager';
381import common from '@ohos.app.ability.common';
382
383try {
384  AutoStartupManager.on('systemAutoStartup', {
385    onAutoStartupOn(data: common.AutoStartupInfo) {
386      console.info('===> autostartupmanager onAutoStartupOn data: ' + JSON.stringify(data));
387    },
388    onAutoStartupOff(data: common.AutoStartupInfo) {
389      console.info('===> autostartupmanager onAutoStartupOff data: ' + JSON.stringify(data));
390    }
391  });
392} catch (err) {
393  console.info('===> autostartupmanager on throw err: ' + JSON.stringify(err));
394}
395```
396