• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.freeInstall (freeInstall模块)
2
3本模块提供免安装相关的设置和查询能力,支持BundlePackInfo、DispatchInfo等信息的查询
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9本模块接口为系统接口。
10
11## 导入模块
12
13```js
14import freeInstall from '@ohos.bundle.freeInstall';
15```
16
17## 权限列表
18
19| 权限                                       | 权限等级     | 描述               |
20| ------------------------------------------ | ------------ | ------------------ |
21| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 |
22| ohos.permission.INSTALL_BUNDLE             | system_core  | 可安装、卸载应用。   |
23
24权限等级参考[权限等级说明](../../security/accesstoken-overview.md#权限等级说明)。
25## UpgradeFlag
26
27**系统接口:** 此接口为系统接口。
28
29**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
30
31| 名称             | 值   | 说明             |
32| ---------------- | ---- | ---------------- |
33| NOT_UPGRADE      | 0    | 模块无需升级。     |
34| SINGLE_UPGRADE   | 1    | 单个模块需要升级。 |
35| RELATION_UPGRADE | 2    | 关系模块需要升级。 |
36
37## BundlePackFlag
38
39**系统接口:** 此接口为系统接口。
40
41**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
42
43| 名称               | 值         | 说明                               |
44| ------------------ | ---------- | ---------------------------------- |
45| GET_PACK_INFO_ALL  | 0x00000000 | 获取应用包pack.info的所有信息。    |
46| GET_PACKAGES       | 0x00000001 | 获取应用包pack.info的package信息。 |
47| GET_BUNDLE_SUMMARY | 0x00000002 | 获取应用包pack.info的bundle摘要信息。  |
48| GET_MODULE_SUMMARY | 0x00000004 | 获取应用包pack.info的module摘要信息。  |
49
50## freeInstall.setHapModuleUpgradeFlag
51
52setHapModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag, callback: AsyncCallback\<void>):void;
53
54设置指定模块是否升级。使用callback异步回调。
55
56**需要权限:** ohos.permission.INSTALL_BUNDLE
57
58**系统接口:** 此接口为系统接口。
59
60**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
61
62**参数:**
63
64| 参数名     | 类型                        | 必填 | 说明                       |
65| ----------- | --------------------------- | ---- | ---------------------------- |
66| bundleName  | string                      | 是   | 应用程序包名称。             |
67| moduleName  | string                      | 是   | 应用程序模块名称。           |
68| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是   | 仅供内部系统使用标志位       |
69| callback    | AsyncCallback\<void>        | 是   | 回调函数。当函数调用成功,err为null,否则为错误对象。 |
70
71**错误码:**
72
73以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
74
75| 错误码ID |    错误信息                            |
76|----------|---------------------------------------- |
77| 17700001 | The specified bundle name is not found. |
78| 17700002 | The specified module name is not found. |
79
80**示例:**
81
82```js
83import freeInstall from '@ohos.bundle.freeInstall';
84let bundleName = 'com.example.myapplication';
85let moduleName = 'entry';
86let upgradeFlag = freeInstall.UpgradeFlag.SINGLE_UPGRADE;
87try {
88    freeInstall.setHapModuleUpgradeFlag(bundleName, moduleName, upgradeFlag, err => {
89        if (err) {
90            console.error('Operation failed:' + JSON.stringify(err));
91        } else {
92            console.info('Operation succeed');
93        }
94    });
95} catch (err) {
96    console.error('Operation failed:' + JSON.stringify(err));
97}
98```
99
100## setHapModuleUpgradeFlag
101
102setHapModuleUpgradeFlag(bundleName: string, moduleName: string, upgradeFlag: UpgradeFlag): Promise\<void>;
103
104设置指定模块是否升级。使用Promise异步回调。
105
106**系统接口:** 此接口为系统接口。
107
108**需要权限:** ohos.permission.INSTALL_BUNDLE
109
110**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
111
112**参数:**
113
114| 参数名      | 类型                        | 必填 | 说明                   |
115| ----------- | --------------------------- | ---- | ---------------------- |
116| bundleName  | string                      | 是   | 应用程序包名称。       |
117| moduleName  | string                      | 是   | 应用程序模块名称。     |
118| upgradeFlag | [UpgradeFlag](#upgradeflag) | 是   | 仅供内部系统使用标志位。|
119
120**返回值:**
121
122| 类型          | 说明                                 |
123| ------------- | ------------------------------------ |
124| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
125
126**错误码:**
127
128以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
129
130| 错误码ID |    错误信息                            |
131|----------|----------------------------------------|
132| 17700001 | The specified bundle name is not found. |
133| 17700002 | The specified module name is not found. |
134
135**示例:**
136
137```js
138import freeInstall from '@ohos.bundle.freeInstall';
139let bundleName = 'com.example.myapplication';
140let moduleName = 'entry';
141let upgradeFlag = freeInstall.UpgradeFlag.SINGLE_UPGRADE;
142try {
143    freeInstall.setHapModuleUpgradeFlag(bundleName, moduleName, upgradeFlag).then(() => {
144        console.info('Operation succeed')
145    }).catch(err => {
146        console.error('Operation failed:' + JSON.stringify(err));
147    });
148} catch (err) {
149    console.error('Operation failed:' + JSON.stringify(err));
150}
151```
152
153## isHapModuleRemovable
154
155isHapModuleRemovable(bundleName: string, moduleName: string, callback: AsyncCallback\<boolean>): void;
156
157查询指定模块是否可以被移除。使用callback异步回调。
158
159**系统接口:** 此接口为系统接口。
160
161**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
162
163**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
164
165**参数:**
166
167| 参数名      | 类型                   | 必填 | 说明                                          |
168| ---------- | ---------------------- | ---- | --------------------------------------------- |
169| bundleName | string                 | 是   | 应用程序包名称。                              |
170| moduleName | string                 | 是   | 应用程序模块名称。                            |
171| callback   | AsyncCallback\<boolean> | 是   | 回调函数。返回true表示可以移除;返回false表示不可移除。 |
172
173**错误码:**
174
175以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
176
177| 错误码ID |    错误信息                            |
178|----------|----------------------------------------|
179| 17700001 | The specified bundle name is not found. |
180| 17700002 | The specified module name is not found. |
181
182**示例:**
183
184```js
185import freeInstall from '@ohos.bundle.freeInstall';
186let bundleName = 'com.example.myapplication';
187let moduleName = 'entry';
188try {
189    freeInstall.isHapModuleRemovable(bundleName, moduleName, (err, data) => {
190        if (err) {
191            console.error('Operation failed:' + JSON.stringify(err));
192        } else {
193            console.info('Operation succeed:' + JSON.stringify(data));
194        }
195    });
196} catch (err) {
197    console.error('Operation failed:' + JSON.stringify(err));
198}
199```
200
201## isHapModuleRemovable
202
203isHapModuleRemovable(bundleName: string, moduleName: string): Promise\<boolean>;
204
205查询指定模块是否可以被移除。使用Promise异步回调。
206
207**系统接口:** 此接口为系统接口。
208
209**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
210
211**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
212
213**参数:**
214
215| 参数名     | 类型   | 必填 | 说明               |
216| ---------- | ------ | ---- | ------------------ |
217| bundleName | string | 是   | 应用程序包名称。   |
218| moduleName | string | 是   | 应用程序模块名称。 |
219
220**返回值:**
221
222| 类型             | 说明                         |
223| ---------------- | ---------------------------- |
224| Promise\<boolean> | Promise对象。返回true表示可以移除;返回false表示不可移除。 |
225
226**错误码:**
227
228以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
229
230| 错误码ID |    错误信息                            |
231|----------|----------------------------------------|
232| 17700001 | The specified bundle name is not found. |
233| 17700002 | The specified module name is not found. |
234
235**示例:**
236
237```js
238import freeInstall from '@ohos.bundle.freeInstall';
239let bundleName = 'com.example.myapplication';
240let moduleName = 'entry';
241try {
242    freeInstall.isHapModuleRemovable(bundleName, moduleName).then(data => {
243        console.info('Operation succeed:' + JSON.stringify(data));
244    }).catch(err => {
245        console.error('Operation failed:' + JSON.stringify(err));
246    });
247} catch (err) {
248    console.error('Operation failed:' + JSON.stringify(err));
249}
250```
251
252## getBundlePackInfo
253
254getBundlePackInfo(bundleName: string, bundlePackFlag : BundlePackFlag, callback: AsyncCallback\<BundlePackInfo>): void;
255
256基于bundleName和bundlePackFlag来获取bundlePackInfo。使用callback异步回调。
257
258**系统接口:** 此接口为系统接口。
259
260**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
261
262**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
263
264**参数:**
265
266| 参数名         | 类型                                                         | 必填 | 说明                                                         |
267| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
268| bundleName     | string                                                       | 是   | 应用程序包名称。                                             |
269| bundlePackFlag | [BundlePackFlag](#bundlepackflag)                            | 是   | 指示要查询的应用包标志。                                       |
270| callback       | AsyncCallback<[BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md)> | 是   | 回调函数。当函数调用成功,err为null,data为获取到的BundlePackInfo信息。否则为错误对象。 |
271
272**错误码:**
273
274以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
275
276| 错误码ID |    错误信息                            |
277|----------|----------------------------------------|
278| 17700001 | The specified bundle name is not found. |
279
280**示例:**
281
282```js
283import freeInstall from '@ohos.bundle.freeInstall';
284let bundleName = 'com.example.myapplication';
285let bundlePackFlag = freeInstall.BundlePackFlag.GET_PACK_INFO_ALL;
286try {
287    freeInstall.getBundlePackInfo(bundleName, bundlePackFlag, (err, data) => {
288        if (err) {
289            console.error('Operation failed:' + JSON.stringify(err));
290        } else {
291            console.info('Operation succeed:' + JSON.stringify(data));
292        }
293    });
294} catch (err) {
295    console.error('Operation failed:' + JSON.stringify(err));
296}
297```
298## getBundlePackInfo
299
300getBundlePackInfo(bundleName: string, bundlePackFlag : BundlePackFlag): Promise\<BundlePackInfo>;
301
302基于bundleName和bundleFlag来获取bundlePackInfo。使用Promise异步回调。
303
304**系统接口:** 此接口为系统接口。
305
306**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
307
308**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
309
310**参数:**
311
312| 参数名         | 类型                              | 必填 | 说明                   |
313| -------------- | --------------------------------- | ---- | ---------------------- |
314| bundleName     | string                            | 是   | 应用程序包名称。       |
315| bundlePackFlag | [BundlePackFlag](#bundlepackflag) | 是   | 指示要查询的应用包标志。|
316
317**返回值:**
318
319| 类型                                                       | 说明                                |
320| ---------------------------------------------------------- | ----------------------------------- |
321| Promise<[BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md)> | Promise对象,返回BundlePackInfo信息。 |
322
323**错误码:**
324
325以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
326
327| 错误码ID |    错误信息                            |
328|----------|----------------------------------------|
329| 17700001 | The specified bundle name is not found. |
330
331**示例:**
332
333```js
334import freeInstall from '@ohos.bundle.freeInstall';
335let bundleName = 'com.example.myapplication';
336let bundlePackFlag = freeInstall.BundlePackFlag.GET_PACK_INFO_ALL;
337try {
338    freeInstall.getBundlePackInfo(bundleName, bundlePackFlag).then(data => {
339        console.info('Operation succeed:' + JSON.stringify(data));
340    }).catch(err => {
341        console.error('Operation failed:' + JSON.stringify(err));
342    });
343} catch (err) {
344    console.error('Operation failed:' + JSON.stringify(err));
345}
346```
347
348## getDispatchInfo
349
350getDispatchInfo(callback: AsyncCallback\<DispatchInfo>): void;
351
352获取有关dispatch版本的信息。使用callback异步回调。
353
354**系统接口:** 此接口为系统接口。
355
356**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
357
358**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
359
360**参数:**
361
362| 参数名   | 类型                                                         | 必填 | 说明                                                         |
363| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
364| callback | AsyncCallback<[DispatchInfo](js-apis-bundleManager-dispatchInfo.md)> | 是   | 回调函数。当函数调用成功,err为null,data为获取到的[DispatchInfo](js-apis-bundleManager-dispatchInfo.md)信息。否则为错误对象。 |
365
366**示例:**
367
368```js
369import freeInstall from '@ohos.bundle.freeInstall';
370try {
371    freeInstall.getDispatchInfo((err, data) => {
372        if (err) {
373            console.error('Operation failed:' + JSON.stringify(err));
374        } else {
375            console.info('Operation succeed:' + JSON.stringify(data));
376        }
377    });
378} catch (err) {
379    console.error('Operation failed:' + JSON.stringify(err));
380}
381```
382
383## getDispatchInfo
384
385getDispatchInfo(): Promise\<DispatchInfo>;
386
387获取有关dispatch版本的信息。使用Promise异步回调。
388
389**系统接口:** 此接口为系统接口。
390
391**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
392
393**系统能力:** SystemCapability.BundleManager.BundleFramework.FreeInstall
394
395**返回值:**
396
397| 类型                                             | 说明                                                         |
398| ------------------------------------------------ | ------------------------------------------------------------ |
399| Promise<[DispatchInfo](js-apis-bundleManager-dispatchInfo.md)> | Promise对象,返回[DispatchInfo](js-apis-bundleManager-dispatchInfo.md)信息。 |
400
401**示例:**
402
403```js
404import freeInstall from '@ohos.bundle.freeInstall';
405try {
406    freeInstall.getDispatchInfo().then(data => {
407        console.info('Operation succeed:' + JSON.stringify(data));
408    }).catch(err => {
409        console.error('Operation failed:' + JSON.stringify(err));
410    });
411} catch (err) {
412    console.error('Operation failed:' + JSON.stringify(err));
413}
414```
415