1e41f4b71Sopenharmony_ci# @ohos.bundle.bundleMonitor (bundleMonitor模块)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci本模块提供监听应用安装,卸载,更新的能力。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> 本模块为系统接口。
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## 导入模块
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport bundleMonitor from '@ohos.bundle.bundleMonitor';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## 权限列表
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci| 权限                                 | 权限等级    | 描述                           |
20e41f4b71Sopenharmony_ci| ------------------------------------ | ----------- | ------------------------------ |
21e41f4b71Sopenharmony_ci| ohos.permission.LISTEN_BUNDLE_CHANGE | system_basic | 可监听应用的安装,卸载,更新。 |
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci权限等级参考[权限APL等级说明](../../security/AccessToken/app-permission-mgmt-overview.md#权限机制中的基本概念)。
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci## BundleChangedInfo
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci**系统接口:**  此接口为系统接口。
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci| 名称       | 类型   | 只读 | 可选 | 说明                       |
32e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ---- | -------------------------- |
33e41f4b71Sopenharmony_ci| bundleName | string | 是   | 否   | 应用状态发生变化的应用Bundle名称。 |
34e41f4b71Sopenharmony_ci| userId     | number | 是   | 否   | 应用状态发生变化的用户id。   |
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci## BundleChangedEvent
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci监听的事件类型。
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci**系统接口:**  此接口为系统接口。
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci| 名称       | 说明             |
45e41f4b71Sopenharmony_ci| ---------- | --------------- |
46e41f4b71Sopenharmony_ci| add        | 监听应用事件。   |
47e41f4b71Sopenharmony_ci| update     | 监听更新事件。   |
48e41f4b71Sopenharmony_ci| remove     | 监听删除事件。   |
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci## bundleMonitor.on
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_cion(type: BundleChangedEvent, callback: Callback\<BundleChangedInfo>): void
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci注册监听应用的安装、卸载、更新。
55e41f4b71Sopenharmony_ci>**说明:**
56e41f4b71Sopenharmony_ci>
57e41f4b71Sopenharmony_ci>该方法需要与[bundleMonitor.off](#bundlemonitoroff)配合使用,在组件、页面、应用的生命周期结束时,使用[bundleMonitor.off](#bundlemonitoroff)注销对应用的安装、卸载、更新等事件的监听。
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.LISTEN_BUNDLE_CHANGE
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci**系统接口:**  此接口为系统接口。
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**参数:**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci| 参数名                       | 类型     | 必填 | 说明               |
68e41f4b71Sopenharmony_ci| ---------------------------- | -------- | ---- | ------------------ |
69e41f4b71Sopenharmony_ci| type| [BundleChangedEvent](js-apis-bundleMonitor-sys.md#bundlechangedevent)| 是   | 注册监听的事件类型。 |
70e41f4b71Sopenharmony_ci| callback | callback\<BundleChangedInfo>| 是   | 注册监听的回调函数。 |
71e41f4b71Sopenharmony_ci
72e41f4b71Sopenharmony_ci**错误码:**
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
75e41f4b71Sopenharmony_ci
76e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                            |
77e41f4b71Sopenharmony_ci| -------- | --------------------------------------|
78e41f4b71Sopenharmony_ci| 201 | Permission denied. |
79e41f4b71Sopenharmony_ci| 202 | Permission denied, non-system app called system api. |
80e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci**示例:**
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci```ts
85e41f4b71Sopenharmony_ciimport bundleMonitor from '@ohos.bundle.bundleMonitor';
86e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_citry {
89e41f4b71Sopenharmony_ci    bundleMonitor.on('add', (bundleChangeInfo) => {
90e41f4b71Sopenharmony_ci        console.info(`bundleName : ${bundleChangeInfo.bundleName} userId : ${bundleChangeInfo.userId}`);
91e41f4b71Sopenharmony_ci	})
92e41f4b71Sopenharmony_ci} catch (errData) {
93e41f4b71Sopenharmony_ci    let message = (errData as BusinessError).message;
94e41f4b71Sopenharmony_ci    let errCode = (errData as BusinessError).code;
95e41f4b71Sopenharmony_ci    console.log(`errData is errCode:${errCode}  message:${message}`);
96e41f4b71Sopenharmony_ci}
97e41f4b71Sopenharmony_ci```
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci## bundleMonitor.off
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_cioff(type: BundleChangedEvent, callback?: Callback\<BundleChangedInfo>): void
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci注销监听应用的安装,卸载,更新。
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.LISTEN_BUNDLE_CHANGE
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**系统接口:**  此接口为系统接口。
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci**参数:**
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci| 参数名                       | 类型     | 必填 | 说明                                                       |
114e41f4b71Sopenharmony_ci| ---------------------------- | -------- | ---- | ---------------------------------------------------------- |
115e41f4b71Sopenharmony_ci| type| [BundleChangedEvent](js-apis-bundleMonitor-sys.md#bundlechangedevent)| 是   | 注销监听的事件类型。                                         |
116e41f4b71Sopenharmony_ci| callback | callback\<BundleChangedInfo>| 否   | 注销监听的回调函数,默认值:注销当前事件的所有callback。 |
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci**错误码:**
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci| 错误码ID | 错误信息                            |
123e41f4b71Sopenharmony_ci| -------- | --------------------------------------|
124e41f4b71Sopenharmony_ci| 201 | Permission denied. |
125e41f4b71Sopenharmony_ci| 202 | Permission denied, non-system app called system api. |
126e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types.|
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci**示例:**
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci```ts
131e41f4b71Sopenharmony_ciimport bundleMonitor from '@ohos.bundle.bundleMonitor';
132e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_citry {
135e41f4b71Sopenharmony_ci    bundleMonitor.off('add');
136e41f4b71Sopenharmony_ci} catch (errData) {
137e41f4b71Sopenharmony_ci    let message = (errData as BusinessError).message;
138e41f4b71Sopenharmony_ci    let errCode = (errData as BusinessError).code;
139e41f4b71Sopenharmony_ci    console.log(`errData is errCode:${errCode}  message:${message}`);
140e41f4b71Sopenharmony_ci}
141e41f4b71Sopenharmony_ci```