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```