• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bundle.appControl (appControl模块)
2
3本模块提供应用拦截能力。对应用设置处置状态后,应用会被禁止运行;用户点击桌面图标时,会根据应用的处置状态,跳转到对应的页面。本模块支持对应用的处置状态进行设置、获取、删除。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9本模块接口为系统接口。
10
11## 导入模块
12
13``` ts
14import appControl from '@ohos.bundle.appControl'
15```
16
17## appControl.setDisposedStatus
18
19setDisposedStatus(appId: string, disposedWant: Want): Promise\<void>
20
21以异步方法设置应用的处置状态。使用Promise异步回调。成功返回null,失败返回对应错误信息。
22
23**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
24
25**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
26
27**系统API:**  此接口为系统接口,三方应用不支持调用。
28
29**参数:**
30
31| 参数名       | 类型     | 必填   | 说明                                    |
32| ----------- | ------ | ---- | --------------------------------------- |
33| appId  | string | 是    | 需要设置处置状态的应用的appId。<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。                    |
34| disposedWant | Want  | 是 | 对应用的处置意图。 |
35
36**返回值:**
37
38| 类型                        | 说明                 |
39| ------------------------- | ------------------ |
40| Promise\<void> | Promise对象。无返回结果的Promise对象。 |
41
42**错误码:**
43
44以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
45
46| 错误码ID | 错误信息                                |
47| ------ | -------------------------------------- |
48| 17700005 |  The specified app ID is empty string.  |
49
50**示例:**
51
52```ts
53var appId = "com.example.myapplication_xxxxx";
54var want = {bundleName: 'com.example.myapplication'};
55
56try {
57    appControl.setDisposedStatus(appId, want)
58        .then(() => {
59            console.info('setDisposedStatus success');
60        }).catch((error) => {
61            console.error('setDisposedStatus failed ' + error.message);
62        });
63} catch (error) {
64    console.error('setDisposedStatus failed ' + error.message);
65}
66```
67
68## appControl.setDisposedStatus
69
70setDisposedStatus(appId: string, disposedWant: Want, callback: AsyncCallback\<void>): void;
71
72以异步方法设置应用的处置状态。使用callback异步回调。成功返回null,失败返回对应错误信息。
73
74**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
75
76**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
77
78**系统API:**  此接口为系统接口,三方应用不支持调用
79
80**参数:**
81
82| 参数名       | 类型                              | 必填   | 说明                                    |
83| ----------- | ------------------------------- | ---- | --------------------------------------- |
84| appId  | string | 是    | 需要设置处置的应用的appId<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。                           |
85| disposedWant | Want  | 是 | 对应用的处置意图。 |
86| callback    | AsyncCallback\<void> | 是    | 回调函数,当设置处置状态成功,err为null,否则为错误对象。 |
87
88**错误码:**
89
90以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
91
92| 错误码ID | 错误信息                                |
93| ------ | -------------------------------------- |
94| 17700005 |  The specified app ID is empty string.  |
95
96**示例:**
97
98```ts
99var appId = "com.example.myapplication_xxxxx";
100var want = {bundleName: 'com.example.myapplication'};
101
102try {
103    appControl.setDisposedStatus(appId, want, (error, data) => {
104        if (error) {
105            console.error('setDisposedStatus failed ' + error.message);
106            return;
107        }
108        console.info('setDisposedStatus success');
109    });
110} catch (error) {
111    console.error('setDisposedStatus failed ' + error.message);
112}
113```
114
115## appControl.getDisposedStatus
116
117getDisposedStatus(appId: string): Promise\<Want>;
118
119以异步方法获取指定应用已设置的处置状态。使用Promise异步回调,成功返回应用的处置状态,失败返回对应错误信息。
120
121**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
122
123**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
124
125**系统API:**  此接口为系统接口,三方应用不支持调用
126
127**参数:**
128
129| 参数名       | 类型     | 必填   | 说明                                    |
130| ----------- | ------ | ---- | --------------------------------------- |
131| appId  | string | 是    | 要查询的应用的appId<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。       |
132
133**返回值:**
134
135| 类型                        | 说明                 |
136| ------------------------- | ------------------ |
137| Promise\<Want> | Promise对象,返回应用的处置状态。 |
138
139**错误码:**
140
141以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
142
143| 错误码ID | 错误信息                                |
144| ------ | -------------------------------------- |
145| 17700005 |  The specified app ID is empty string.  |
146
147**示例:**
148
149```ts
150var appId = "com.example.myapplication_xxxxx";
151
152try {
153    appControl.getDisposedStatus(appId)
154        .then((data) => {
155            console.info('getDisposedStatus success. DisposedStatus: ' + JSON.stringify(data));
156        }).catch((error) => {
157            console.error('getDisposedStatus failed ' + error.message);
158        });
159} catch (error) {
160    console.error('getDisposedStatus failed ' + error.message);
161}
162```
163
164## appControl.getDisposedStatus
165
166getDisposedStatus(appId: string, callback: AsyncCallback\<Want>): void;
167
168以异步方法获取指定应用的处置状态。使用callback异步回调,成功返回应用的处置状态,失败返回对应错误信息。
169
170**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
171
172**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
173
174**系统API:**  此接口为系统接口,三方应用不支持调用
175
176**参数:**
177
178| 参数名       | 类型     | 必填   | 说明                                  |
179| ----------- | ------ | ---- | --------------------------------------- |
180| appId  | string | 是    | 要查询的应用的appId<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。       |
181| callback    | AsyncCallback\<Want> | 是    | 回调函数。当获取应用的处置状态成功时,err为null,data为获取到的处置状态;否则为错误对象。                    |
182
183**错误码:**
184
185以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
186
187| 错误码ID | 错误信息                                |
188| ------ | -------------------------------------- |
189| 17700005 |  The specified app ID is empty string.  |
190
191**示例:**
192
193```ts
194var appId = "com.example.myapplication_xxxxx";
195
196try {
197    appControl.getDisposedStatus(appId, (error, data) => {
198        if (error) {
199            console.error('getDisposedStatus failed ' + error.message);
200            return;
201        }
202        console.info('getDisposedStatus success. DisposedStatus: ' + JSON.stringify(data));
203    });
204} catch (error) {
205    console.error('getDisposedStatus failed ' + error.message);
206}
207```
208
209## appControl.deleteDisposedStatus
210
211deleteDisposedStatus(appId: string): Promise\<void>
212
213以异步方法删除应用的处置状态。使用promise异步回调,成功返回null,失败返回对应错误信息。
214
215**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
216
217**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
218
219**系统API:**  此接口为系统接口,三方应用不支持调用
220
221**参数:**
222
223| 参数名       | 类型     | 必填   | 说明                                    |
224| ----------- | ------ | ---- | --------------------------------------- |
225| appId  | string | 是    | 要删除处置状态的应用的appId<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。       |
226
227**返回值:**
228
229| 类型                        | 说明                 |
230| ------------------------- | ------------------ |
231| Promise\<void> | Promise对象,无返回结果的Promise对象 |
232
233**错误码:**
234
235以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
236
237| 错误码ID | 错误信息                                |
238| ------ | -------------------------------------- |
239| 17700005 |  The specified app ID is empty string.  |
240
241**示例:**
242
243```ts
244var appId = "com.example.myapplication_xxxxx";
245
246try {
247    appControl.deleteDisposedStatus(appId)
248        .then(() => {
249            console.info('deleteDisposedStatus success');
250        }).catch((error) => {
251            console.error('deleteDisposedStatus failed ' + error.message);
252        });
253} catch (error) {
254    console.error('deleteDisposedStatus failed ' + error.message);
255}
256```
257
258## appControl.deleteDisposedStatus
259
260deleteDisposedStatus(appId: string, callback: AsyncCallback\<void>) : void
261
262以异步方法删除应用的处置状态。使用callback异步回调,成功返回null,失败返回对应错误信息。
263
264**需要权限:** ohos.permission.MANAGE_DISPOSED_APP_STATUS
265
266**系统能力:** SystemCapability.BundleManager.BundleFramework.AppControl
267
268**系统API:**  此接口为系统接口,三方应用不支持调用
269
270**参数:**
271
272| 参数名       | 类型     | 必填   | 说明                                    |
273| ----------- | ------ | ---- | --------------------------------------- |
274| appId  | string | 是    | 要查询的应用的appId。<br> appId是应用的唯一标识,由应用的包名和签名信息决定,获取方法参见[获取应用的appId](#获取应用的appid)。       |
275| callback    | AsyncCallback\<void> | 是    | 回调函数,当设置处置状态成功时,err返回null。否则回调函数返回具体错误对象。                   |
276
277**错误码:**
278
279以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)。
280
281| 错误码ID | 错误信息                                |
282| ------ | -------------------------------------- |
283| 17700005 |  The specified app ID is empty string.  |
284
285**示例:**
286
287```ts
288var appId = "com.example.myapplication_xxxxx";
289try {
290    appControl.deleteDisposedStatus(appId, (error, data) => {
291        if (error) {
292            console.error('deleteDisposedStatus failed ' + error.message);
293            return;
294        }
295        console.info('deleteDisposedStatus success');
296    });
297} catch (error) {
298    console.error('deleteDisposedStatus failed ' + error.message);
299}
300```
301
302## 获取应用的appId
303
304appId是应用的唯一标识,由应用的包名和签名信息决定,可以通过[getBundleInfo](js-apis-bundleManager.md#bundlemanagergetbundleinfo)接口获取。
305
306**示例:**
307
308```ts
309import bundleManager from '@ohos.bundle.bundleManager';
310
311var bundleName = 'com.example.myapplication';
312var appId;
313try {
314    bundleManager.getBundleInfo(bundleName, bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO)
315        .then((data) => {
316            appId = data.signatureInfo.appId;
317            console.info("appId is " + appId);
318        }).catch((error) => {
319            console.error("getBundleInfo failed " + error.message);
320        });
321} catch (error) {
322    console.error("getBundleInfo failed " + error.message);
323}
324```