1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { BundleInfo, AppCloneIdentity } from 'bundleManager.BundleInfo'; 17import { AsyncCallback, BusinessError } from '@ohos.base'; 18import { ApplicationInfo } from 'bundleManager.ApplicationInfo'; 19import { AbilityInfo } from 'bundleManager.AbilityInfo'; 20import { ExtensionAbilityInfo } from 'bundleManager.ExtensionAbilityInfo'; 21import Want from '@ohos.app.ability.Want'; 22 23namespace bundleManager { 24 25 loadLibrary("ani_bundle_manager.z"); 26 27 const EMPTY_USER_ID: number = -500; 28 29 enum BundleFlag { 30 GET_BUNDLE_INFO_DEFAULT = 0x00000000, 31 GET_BUNDLE_INFO_WITH_APPLICATION = 0x00000001, 32 GET_BUNDLE_INFO_WITH_HAP_MODULE = 0x00000002, 33 GET_BUNDLE_INFO_WITH_ABILITY = 0x00000004, 34 GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY = 0x00000008, 35 GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION = 0x00000010, 36 GET_BUNDLE_INFO_WITH_METADATA = 0x00000020, 37 GET_BUNDLE_INFO_WITH_DISABLE = 0x00000040, 38 GET_BUNDLE_INFO_WITH_SIGNATURE_INFO = 0x00000080, 39 GET_BUNDLE_INFO_WITH_MENU = 0x00000100, 40 GET_BUNDLE_INFO_WITH_ROUTER_MAP = 0x00000200, 41 GET_BUNDLE_INFO_WITH_SKILL = 0x00000800, 42 GET_BUNDLE_INFO_ONLY_WITH_LAUNCHER_ABILITY = 0x00001000, 43 GET_BUNDLE_INFO_OF_ANY_USER = 0x00002000, 44 GET_BUNDLE_INFO_EXCLUDE_CLONE = 0x00004000, 45 GET_BUNDLE_INFO_WITH_CLOUD_KIT = 0x00008000, 46 } 47 48 enum ApplicationFlag { 49 GET_APPLICATION_INFO_DEFAULT = 0x00000000, 50 GET_APPLICATION_INFO_WITH_PERMISSION = 0x00000001, 51 GET_APPLICATION_INFO_WITH_METADATA = 0x00000002, 52 GET_APPLICATION_INFO_WITH_DISABLE = 0x00000004 53 } 54 55 enum AbilityFlag { 56 GET_ABILITY_INFO_DEFAULT = 0x00000000, 57 GET_ABILITY_INFO_WITH_PERMISSION = 0x00000001, 58 GET_ABILITY_INFO_WITH_APPLICATION = 0x00000002, 59 GET_ABILITY_INFO_WITH_METADATA = 0x00000004, 60 GET_ABILITY_INFO_WITH_DISABLE = 0x00000008, 61 GET_ABILITY_INFO_ONLY_SYSTEM_APP = 0x00000010, 62 GET_ABILITY_INFO_WITH_APP_LINKING = 0x00000040, 63 GET_ABILITY_INFO_WITH_SKILL = 0x00000080, 64 } 65 66 enum ExtensionAbilityFlag { 67 GET_EXTENSION_ABILITY_INFO_DEFAULT = 0x00000000, 68 GET_EXTENSION_ABILITY_INFO_WITH_PERMISSION = 0x00000001, 69 GET_EXTENSION_ABILITY_INFO_WITH_APPLICATION = 0x00000002, 70 GET_EXTENSION_ABILITY_INFO_WITH_METADATA = 0x00000004, 71 GET_EXTENSION_ABILITY_INFO_WITH_SKILL = 0x00000010, 72 } 73 74 export enum ExtensionAbilityType { 75 FORM = 0, 76 WORK_SCHEDULER = 1, 77 INPUT_METHOD = 2, 78 SERVICE = 3, 79 ACCESSIBILITY = 4, 80 DATA_SHARE = 5, 81 FILE_SHARE = 6, 82 STATIC_SUBSCRIBER = 7, 83 WALLPAPER = 8, 84 BACKUP = 9, 85 WINDOW = 10, 86 ENTERPRISE_ADMIN = 11, 87 THUMBNAIL = 13, 88 PREVIEW = 14, 89 PRINT = 15, 90 SHARE = 16, 91 PUSH = 17, 92 DRIVER = 18, 93 ACTION = 19, 94 ADS_SERVICE = 20, 95 EMBEDDED_UI = 21, 96 INSIGHT_INTENT_UI = 22, 97 FENCE = 24, 98 CALLER_INFO_QUERY = 25, 99 ASSET_ACCELERATION = 26, 100 FORM_EDIT = 27, 101 DISTRIBUTED = 28, 102 APP_SERVICE = 29, 103 LIVE_FORM = 30, 104 UNSPECIFIED = 255 105 } 106 107 export enum PermissionGrantState { 108 PERMISSION_DENIED = -1, 109 PERMISSION_GRANTED = 0 110 } 111 112 export enum SupportWindowMode { 113 FULL_SCREEN = 0, 114 SPLIT = 1, 115 FLOATING = 2 116 } 117 118 export enum LaunchType { 119 SINGLETON = 0, 120 MULTITON = 1, 121 SPECIFIED = 2 122 } 123 124 export enum DisplayOrientation { 125 UNSPECIFIED, 126 LANDSCAPE, 127 PORTRAIT, 128 FOLLOW_RECENT, 129 LANDSCAPE_INVERTED, 130 PORTRAIT_INVERTED, 131 AUTO_ROTATION, 132 AUTO_ROTATION_LANDSCAPE, 133 AUTO_ROTATION_PORTRAIT, 134 AUTO_ROTATION_RESTRICTED, 135 AUTO_ROTATION_LANDSCAPE_RESTRICTED, 136 AUTO_ROTATION_PORTRAIT_RESTRICTED, 137 LOCKED, 138 AUTO_ROTATION_UNSPECIFIED, 139 FOLLOW_DESKTOP 140 } 141 142 export enum ModuleType { 143 ENTRY = 1, 144 FEATURE = 2, 145 SHARED = 3 146 } 147 148 export enum BundleType { 149 APP = 0, 150 ATOMIC_SERVICE = 1 151 } 152 153 export enum CompatiblePolicy { 154 BACKWARD_COMPATIBILITY = 1 155 } 156 157 export enum ProfileType { 158 INTENT_PROFILE = 1 159 } 160 161 export enum AppDistributionType { 162 APP_GALLERY = 1, 163 ENTERPRISE = 2, 164 ENTERPRISE_NORMAL = 3, 165 ENTERPRISE_MDM = 4, 166 OS_INTEGRATION = 5, 167 CROWDTESTING = 6, 168 NONE = 7 169 } 170 171 export enum MultiAppModeType { 172 UNSPECIFIED = 0, 173 MULTI_INSTANCE = 1, 174 APP_CLONE = 2, 175 } 176 177 export enum ApplicationInfoFlag { 178 FLAG_INSTALLED = 0x00000001, 179 FLAG_OTHER_INSTALLED = 0x00000010, 180 FLAG_PREINSTALLED_APP = 0x00000020, 181 FLAG_PREINSTALLED_APP_UPDATE = 0x00000040, 182 } 183 184 export native function getBundleInfoForSelfNative(bundleFlags: number, isSync: boolean): BundleInfo; 185 186 export native function getBundleInfoNative(bundleName: string, bundleFlags: number, userId: number, isSync: boolean) : BundleInfo; 187 188 export native function getApplicationInfoNative(bundleName: string, applicationFlags: number, userId: number, isSync: boolean): ApplicationInfo; 189 190 export native function getAllBundleInfoNative(bundleFlags: number, userId: number): Array<BundleInfo>; 191 192 export native function getAllApplicationInfoNative(appFlags: number, userId: number): Array<ApplicationInfo>; 193 194 export native function isApplicationEnabledNative(bundleName: string, appIndex: number, isSync: boolean): boolean; 195 196 export native function queryAbilityInfoSyncNative(want: Want, abilityFlags: number, userId: number, isSync: boolean): Array<AbilityInfo>; 197 198 export native function getAppCloneIdentityNative(uid: number): AppCloneIdentity; 199 200 export native function getAbilityLabelNative(bundleName: string, moduleName: string, abilityName: string, isSync: boolean): string; 201 202 export native function getLaunchWantForBundleNative(bundleName: string, userId: number, isSync: boolean): Want; 203 204 export native function getAppCloneBundleInfoNative(bundleName: string, appIndex: number, 205 bundleFlags: number, userId: number): BundleInfo; 206 207 export native function getSpecifiedDistributionType(bundleName: string): string; 208 209 export native function getBundleNameByUidNative(uid: number, isSync: boolean): string; 210 211 export native function isAbilityEnabledNative(info: AbilityInfo, appIndex: number, isSync: boolean): boolean; 212 213 export native function setAbilityEnabledNative(info: AbilityInfo, isEnabled: boolean, appIndex: number, isSync: boolean): void; 214 215 export native function setApplicationEnabledNative(bundleName: string, isEnabled: boolean, appIndex: number, isSync: boolean): void; 216 217 export native function getDynamicIconNative(bundleName: string): string; 218 219 export native function queryAbilityInfoWithWantsNative(wants: Array<Want>, abilityFlags: number, 220 userId: number): Array<AbilityInfo>; 221 222 export native function queryExtensionAbilityInfoNative(want: Want, extensionAbilityType: ExtensionAbilityType, 223 extensionAbilityTypeName: string, extensionAbilityFlags: number, 224 userId: number, isExtensionTypeName: boolean, isSync: boolean): Array<ExtensionAbilityInfo>; 225 226 export native function queryExAbilityInfoSyncWithoutWantNative(extensionAbilityType: string, extensionAbilityFlags: number, 227 userId: number): Array<ExtensionAbilityInfo>; 228 229 export native function enableDynamicIconNative(bundleName: string, moduleName: string): void; 230 231 function getBundleInfoForSelfSync(bundleFlags: number): BundleInfo { 232 return bundleManager.getBundleInfoForSelfNative(bundleFlags, true); 233 } 234 235 function getAbilityLabelSync(bundleName: string, moduleName: string, abilityName: string): string { 236 return bundleManager.getAbilityLabelNative(bundleName, moduleName, abilityName, true); 237 } 238 239 function getBundleNameByUidSync(uid: number): string { 240 return bundleManager.getBundleNameByUidNative(uid, true); 241 } 242 243 function isApplicationEnabledSync(bundleName: string): boolean { 244 return bundleManager.isApplicationEnabledNative(bundleName, 0, true); 245 } 246 247 function queryAbilityInfoSync(want: Want, abilityFlags: number, userId?: number): Array<AbilityInfo> { 248 let userIdInfo: number = userId ?? EMPTY_USER_ID; 249 return bundleManager.queryAbilityInfoSyncNative(want, abilityFlags, userIdInfo, true); 250 } 251 252 function getLaunchWantForBundleSync(bundleName: string, userId?: number): Want { 253 let userIdInfo: number = userId ?? EMPTY_USER_ID; 254 return bundleManager.getLaunchWantForBundleNative(bundleName, userIdInfo, true); 255 } 256 257 function isAbilityEnabledSync(info: AbilityInfo): boolean { 258 return bundleManager.isAbilityEnabledNative(info, 0, true); 259 } 260 261 function setAbilityEnabledSync(info: AbilityInfo, isEnabled: boolean): void { 262 return bundleManager.setAbilityEnabledNative(info, isEnabled, 0, true); 263 } 264 265 function setApplicationEnabledSync(bundleName: string, isEnabled: boolean): void { 266 return bundleManager.setApplicationEnabledNative(bundleName, isEnabled, 0, true); 267 } 268 269 function queryExtensionAbilityInfoSync(want: Want, extensionAbilityType: ExtensionAbilityType, 270 extensionAbilityFlags: number, userId?: number): Array<ExtensionAbilityInfo> { 271 let userIdInfo: number = userId ?? EMPTY_USER_ID; 272 return bundleManager.queryExtensionAbilityInfoNative( 273 want, extensionAbilityType, "", extensionAbilityFlags, userIdInfo, false, true); 274 } 275 276 function queryExtensionAbilityInfoSync(want: Want, extensionAbilityType: string, extensionAbilityFlags: number, 277 userId?: number): Array<ExtensionAbilityInfo> { 278 let userIdInfo: number = userId ?? EMPTY_USER_ID; 279 return bundleManager.queryExtensionAbilityInfoNative( 280 want, ExtensionAbilityType.UNSPECIFIED, extensionAbilityType, extensionAbilityFlags, userIdInfo, true, true); 281 } 282 283 function queryExtensionAbilityInfoSync(extensionAbilityType: string, extensionAbilityFlags: number, 284 userId?: number): Array<ExtensionAbilityInfo> { 285 let userIdInfo: number = userId ?? EMPTY_USER_ID; 286 return bundleManager.queryExAbilityInfoSyncWithoutWantNative(extensionAbilityType, extensionAbilityFlags, userIdInfo); 287 } 288 289 function getBundleInfoForSelf(bundleFlags: number, callback: AsyncCallback<BundleInfo>): void { 290 let execFun = (): BundleInfo => { 291 return bundleManager.getBundleInfoForSelfNative(bundleFlags, false); 292 }; 293 let p1 = taskpool.execute(execFun); 294 p1.then((e: NullishType) => { 295 let resultBundleInfo: BundleInfo = e as BundleInfo; 296 callback(null, resultBundleInfo); 297 }, (err: Error): void => { 298 callback(err as BusinessError, undefined); 299 }); 300 } 301 302 function getBundleInfoForSelf(bundleFlags: number):Promise<BundleInfo> { 303 let p = new Promise<BundleInfo>((resolve: (bundleInfo: BundleInfo) => void, reject: (error: BusinessError) => void) => { 304 let execFun = (): BundleInfo => { 305 return bundleManager.getBundleInfoForSelfNative(bundleFlags, false); 306 }; 307 let p1 = taskpool.execute(execFun); 308 p1.then((e: NullishType) => { 309 let resultBundleInfo: BundleInfo = e as BundleInfo; 310 resolve(resultBundleInfo); 311 }, (err: Error): void => { 312 reject(err as BusinessError); 313 }); 314 } 315 ); 316 return p; 317 } 318 319 function getBundleInfoSync(bundleName: string, bundleFlags: number, userId: number): BundleInfo { 320 return bundleManager.getBundleInfoNative(bundleName, bundleFlags, userId, true); 321 } 322 323 function getBundleInfoSync(bundleName: string, bundleFlags: number): BundleInfo { 324 return bundleManager.getBundleInfoNative(bundleName, bundleFlags, EMPTY_USER_ID, true); 325 } 326 327 function getBundleInfo(bundleName: string, bundleFlags: number, userId?: number): Promise<BundleInfo> { 328 let p = new Promise<BundleInfo>((resolve: (bundleInfo: BundleInfo) => void, reject: (error: BusinessError) => void) => { 329 let userIdInfo: number = userId ?? EMPTY_USER_ID; 330 let execFun = (): BundleInfo => { 331 return bundleManager.getBundleInfoNative(bundleName, bundleFlags, userIdInfo, false); 332 }; 333 let p1 = taskpool.execute(execFun); 334 p1.then((e: NullishType) => { 335 let resultBundleInfo: BundleInfo = e as BundleInfo; 336 resolve(resultBundleInfo); 337 }, (err: Error): void => { 338 reject(err as BusinessError); 339 }); 340 } 341 ); 342 return p; 343 } 344 345 function getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback<BundleInfo>): void { 346 let execFun = (): BundleInfo => { 347 return bundleManager.getBundleInfoNative(bundleName, bundleFlags, EMPTY_USER_ID, false); 348 }; 349 let p1 = taskpool.execute(execFun); 350 p1.then((e: NullishType) => { 351 let resultBundleInfo: BundleInfo = e as BundleInfo; 352 callback(null, resultBundleInfo); 353 },(err: Error): void => { 354 callback(err as BusinessError, undefined); 355 }); 356 } 357 358 function getBundleInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback<BundleInfo>): void { 359 let execFun = (): BundleInfo => { 360 return bundleManager.getBundleInfoNative(bundleName, bundleFlags, userId, false); 361 }; 362 let p1 = taskpool.execute(execFun); 363 p1.then((e: NullishType) => { 364 let resultBundleInfo: BundleInfo = e as BundleInfo; 365 callback(null, resultBundleInfo); 366 },(err: Error): void => { 367 callback(err as BusinessError, undefined); 368 }); 369 } 370 371 function getApplicationInfoSync(bundleName: string, applicationFlags: number): ApplicationInfo { 372 return bundleManager.getApplicationInfoNative(bundleName, applicationFlags, EMPTY_USER_ID, true); 373 } 374 375 function getApplicationInfoSync(bundleName: string, applicationFlags: number, userId: number): ApplicationInfo { 376 return bundleManager.getApplicationInfoNative(bundleName, applicationFlags, userId, true); 377 } 378 379 function getAllBundleInfo(bundleFlags: number, userId?: number): Promise<Array<BundleInfo>> { 380 let p = new Promise<Array<BundleInfo>>((resolve: (bundleInfos: Array<BundleInfo>) 381 => void, reject: (error: BusinessError) => void) => { 382 let userIdInfo: number = userId ?? EMPTY_USER_ID; 383 let execFun = (): Array<BundleInfo> => { 384 return bundleManager.getAllBundleInfoNative(bundleFlags, userIdInfo); 385 }; 386 let p1 = taskpool.execute(execFun); 387 p1.then((e: NullishType) => { 388 let resultBundleInfos: Array<BundleInfo> = e as Array<BundleInfo>; 389 resolve(resultBundleInfos); 390 }, (err: Error): void => { 391 reject(err as BusinessError); 392 }); 393 } 394 ); 395 return p; 396 } 397 398 function getAllBundleInfo(bundleFlags: number, callback: AsyncCallback<Array<BundleInfo>>): void { 399 let execFun = (): Array<BundleInfo> => { 400 return bundleManager.getAllBundleInfoNative(bundleFlags, EMPTY_USER_ID); 401 }; 402 let p1 = taskpool.execute(execFun); 403 p1.then((e: NullishType) => { 404 let resultBundleInfos: Array<BundleInfo> = e as Array<BundleInfo>; 405 callback(null, resultBundleInfos); 406 }, (err: Error): void => { 407 callback(err as BusinessError, undefined); 408 }); 409 } 410 411 function getAllBundleInfo(bundleFlags: number, userId: number, callback: AsyncCallback<Array<BundleInfo>>): void { 412 let execFun = (): Array<BundleInfo> => { 413 return bundleManager.getAllBundleInfoNative(bundleFlags, userId); 414 }; 415 let p1 = taskpool.execute(execFun); 416 p1.then((e: NullishType) => { 417 let resultBundleInfos: Array<BundleInfo> = e as Array<BundleInfo>; 418 callback(null, resultBundleInfos); 419 }, (err: Error): void => { 420 callback(err as BusinessError, undefined); 421 }); 422 } 423 424 function getAllApplicationInfo(appFlags: number, userId?: number): Promise<Array<ApplicationInfo>> { 425 let p = new Promise<Array<ApplicationInfo>>((resolve: (applicationInfos: Array<ApplicationInfo>) 426 => void, reject: (error: BusinessError) => void) => { 427 let userIdInfo: number = userId ?? EMPTY_USER_ID; 428 let execFun = (): Array<ApplicationInfo> => { 429 return bundleManager.getAllApplicationInfoNative(appFlags, userIdInfo); 430 }; 431 let p1 = taskpool.execute(execFun); 432 p1.then((e: NullishType) => { 433 let resultApplicationInfos: Array<ApplicationInfo> = e as Array<ApplicationInfo>; 434 resolve(resultApplicationInfos); 435 }, (err: Error): void => { 436 reject(err as BusinessError); 437 }); 438 } 439 ); 440 return p; 441 } 442 443 function getAllApplicationInfo(appFlags: number, callback: AsyncCallback<Array<ApplicationInfo>>): void { 444 let execFun = (): Array<ApplicationInfo> => { 445 return bundleManager.getAllApplicationInfoNative(appFlags, EMPTY_USER_ID); 446 }; 447 let p1 = taskpool.execute(execFun); 448 p1.then((e: NullishType) => { 449 let resultApplicationInfos: Array<ApplicationInfo> = e as Array<ApplicationInfo>; 450 callback(null, resultApplicationInfos); 451 }, (err: Error): void => { 452 callback(err as BusinessError, undefined); 453 }); 454 } 455 456 function getAllApplicationInfo(appFlags: number, userId: number, 457 callback: AsyncCallback<Array<ApplicationInfo>>): void { 458 let execFun = (): Array<ApplicationInfo> => { 459 return bundleManager.getAllApplicationInfoNative(appFlags, userId); 460 }; 461 let p1 = taskpool.execute(execFun); 462 p1.then((e: NullishType) => { 463 let resultApplicationInfos: Array<ApplicationInfo> = e as Array<ApplicationInfo>; 464 callback(null, resultApplicationInfos); 465 }, (err: Error): void => { 466 callback(err as BusinessError, undefined); 467 }); 468 } 469 470 function isApplicationEnabled(bundleName: string, appIndex: number): Promise<boolean> { 471 let p = new Promise<boolean>((resolve: (isEnabled: boolean) => void, reject: (error: BusinessError) => void) => { 472 let execFun = (): boolean => { 473 return bundleManager.isApplicationEnabledNative(bundleName, appIndex, false); 474 }; 475 let p1 = taskpool.execute(execFun); 476 p1.then((e: NullishType) => { 477 let isEnabled: boolean = e as boolean; 478 resolve(isEnabled); 479 }, (err: Error): void => { 480 reject(err as BusinessError); 481 }); 482 } 483 ); 484 return p; 485 } 486 487 function isApplicationEnabled(bundleName: string): Promise<boolean> { 488 let p = new Promise<boolean>((resolve: (isEnabled: boolean) => void, reject: (error: BusinessError) => void) => { 489 let execFun = (): boolean => { 490 return bundleManager.isApplicationEnabledNative(bundleName, 0, false); 491 }; 492 let p1 = taskpool.execute(execFun); 493 p1.then((e: NullishType) => { 494 let isEnabled: boolean = e as boolean; 495 resolve(isEnabled); 496 }, (err: Error): void => { 497 reject(err as BusinessError); 498 }); 499 } 500 ); 501 return p; 502 } 503 504 function isApplicationEnabled(bundleName: string, callback: AsyncCallback<boolean>): void { 505 let execFun = (): boolean => { 506 return bundleManager.isApplicationEnabledNative(bundleName, 0, false); 507 }; 508 let p1 = taskpool.execute(execFun); 509 p1.then((e: NullishType) => { 510 let isEnabled: boolean = e as boolean; 511 callback(null, isEnabled); 512 }, (err: Error): void => { 513 callback(err as BusinessError, undefined); 514 }); 515 } 516 517 function queryAbilityInfo(want: Want, abilityFlags: number, userId?: number): Promise<Array<AbilityInfo>> { 518 let p = new Promise<Array<AbilityInfo>>((resolve: (abilityInfos: Array<AbilityInfo>) 519 => void, reject: (error: BusinessError) => void) => { 520 let userIdInfo: number = userId ?? EMPTY_USER_ID; 521 let execFun = (): Array<AbilityInfo> => { 522 return bundleManager.queryAbilityInfoSyncNative(want, abilityFlags, userIdInfo, false); 523 }; 524 let p1 = taskpool.execute(execFun); 525 p1.then((e: NullishType) => { 526 let resultAbilityInfos: Array<AbilityInfo> = e as Array<AbilityInfo>; 527 resolve(resultAbilityInfos); 528 }, (err: Error): void => { 529 reject(err as BusinessError); 530 }); 531 } 532 ); 533 return p; 534 } 535 536 function queryAbilityInfo(want: Want, abilityFlags: number, callback: AsyncCallback<Array<AbilityInfo>>): void { 537 let execFun = (): Array<AbilityInfo> => { 538 return bundleManager.queryAbilityInfoSyncNative(want, abilityFlags, EMPTY_USER_ID, false); 539 }; 540 let p1 = taskpool.execute(execFun); 541 p1.then((e: NullishType) => { 542 let resultAbilityInfos: Array<AbilityInfo> = e as Array<AbilityInfo>; 543 callback(null, resultAbilityInfos); 544 }, (err: Error): void => { 545 callback(err as BusinessError, undefined); 546 }); 547 } 548 549 function queryAbilityInfo(want: Want, 550 abilityFlags: number, userId: number, callback: AsyncCallback<Array<AbilityInfo>>): void { 551 let execFun = (): Array<AbilityInfo> => { 552 return bundleManager.queryAbilityInfoSyncNative(want, abilityFlags, userId, false); 553 }; 554 let p1 = taskpool.execute(execFun); 555 p1.then((e: NullishType) => { 556 let resultAbilityInfos: Array<AbilityInfo> = e as Array<AbilityInfo>; 557 callback(null, resultAbilityInfos); 558 }, (err: Error): void => { 559 callback(err as BusinessError, undefined); 560 }); 561 } 562 563 function getApplicationInfo(bundleName: string, appFlags: number, userId?: number): Promise<ApplicationInfo> { 564 let p = new Promise<ApplicationInfo>(( 565 resolve: (applicationInfo: ApplicationInfo) => void, reject: (error: BusinessError) => void) => { 566 let userIdInfo: number = userId ?? EMPTY_USER_ID; 567 let execFun = (): ApplicationInfo => { 568 return bundleManager.getApplicationInfoNative(bundleName, appFlags, userIdInfo, false); 569 }; 570 let p1 = taskpool.execute(execFun); 571 p1.then((e: NullishType) => { 572 let resultApplicationInfo: ApplicationInfo = e as ApplicationInfo; 573 resolve(resultApplicationInfo); 574 }, (err: Error): void => { 575 reject(err as BusinessError); 576 }); 577 } 578 ); 579 return p; 580 } 581 582 function getApplicationInfo(bundleName: string, appFlags: number, callback: AsyncCallback<ApplicationInfo>): void { 583 let execFun = (): ApplicationInfo => { 584 return bundleManager.getApplicationInfoNative(bundleName, appFlags, EMPTY_USER_ID, false); 585 }; 586 let p1 = taskpool.execute(execFun); 587 p1.then((e: NullishType) => { 588 let resultApplicationInfo: ApplicationInfo = e as ApplicationInfo; 589 callback(null, resultApplicationInfo); 590 },(err: Error): void => { 591 callback(err as BusinessError, undefined); 592 }); 593 } 594 595 function getApplicationInfo(bundleName: string, 596 appFlags: number, userId: number, callback: AsyncCallback<ApplicationInfo>): void { 597 let execFun = (): ApplicationInfo => { 598 return bundleManager.getApplicationInfoNative(bundleName, appFlags, userId, false); 599 }; 600 let p1 = taskpool.execute(execFun); 601 p1.then((e: NullishType) => { 602 let resultApplicationInfo: ApplicationInfo = e as ApplicationInfo; 603 callback(null, resultApplicationInfo); 604 },(err: Error): void => { 605 callback(err as BusinessError, undefined); 606 }); 607 } 608 609 function getAppCloneIdentity(uid: number): Promise<AppCloneIdentity> { 610 let p = new Promise<AppCloneIdentity>(( 611 resolve: (appCloneIdentity: AppCloneIdentity) => void, reject: (error: BusinessError) => void) => { 612 let execFun = (): AppCloneIdentity => { 613 return bundleManager.getAppCloneIdentityNative(uid); 614 }; 615 let p1 = taskpool.execute(execFun); 616 p1.then((e: NullishType) => { 617 let resultAppCloneIdentity: AppCloneIdentity = e as AppCloneIdentity; 618 resolve(resultAppCloneIdentity); 619 }, (err: Error): void => { 620 reject(err as BusinessError); 621 }); 622 } 623 ); 624 return p; 625 } 626 627 function getAbilityLabel(bundleName: string, moduleName: string, abilityName: string): Promise<string> { 628 let p = new Promise<string>(( 629 resolve: (label: string) => void, reject: (error: BusinessError) => void) => { 630 let execFun = (): string => { 631 return bundleManager.getAbilityLabelNative(bundleName, moduleName, abilityName, false); 632 }; 633 let p1 = taskpool.execute(execFun); 634 p1.then((e: NullishType) => { 635 let label: string = e as string; 636 resolve(label); 637 }, (err: Error): void => { 638 reject(err as BusinessError); 639 }); 640 } 641 ); 642 return p; 643 } 644 645 function getAbilityLabel( 646 bundleName: string, moduleName: string, abilityName: string, callback: AsyncCallback<string>): void { 647 let execFun = (): string => { 648 return bundleManager.getAbilityLabelNative(bundleName, moduleName, abilityName, false); 649 }; 650 let p1 = taskpool.execute(execFun); 651 p1.then((e: NullishType) => { 652 let label: string = e as string; 653 callback(null, label); 654 },(err: Error): void => { 655 callback(err as BusinessError, undefined); 656 }); 657 } 658 659 function getLaunchWantForBundle(bundleName: string, userId?: number): Promise<Want> { 660 let p = new Promise<Want>(( 661 resolve: (want: Want) => void, reject: (error: BusinessError) => void) => { 662 let userIdInfo: number = userId ?? EMPTY_USER_ID; 663 let execFun = (): Want => { 664 return bundleManager.getLaunchWantForBundleNative(bundleName, userIdInfo, false); 665 }; 666 let p1 = taskpool.execute(execFun); 667 p1.then((e: NullishType) => { 668 let want: Want = e as Want; 669 resolve(want); 670 }, (err: Error): void => { 671 reject(err as BusinessError); 672 }); 673 } 674 ); 675 return p; 676 } 677 678 function getLaunchWantForBundle(bundleName: string, userId: number, callback: AsyncCallback<Want>): void { 679 let execFun = (): Want => { 680 return bundleManager.getLaunchWantForBundleNative(bundleName, userId, false); 681 }; 682 let p1 = taskpool.execute(execFun); 683 p1.then((e: NullishType) => { 684 let want: Want = e as Want; 685 callback(null, want); 686 },(err: Error): void => { 687 callback(err as BusinessError, undefined); 688 }); 689 } 690 691 function getLaunchWantForBundle(bundleName: string, callback: AsyncCallback<Want>): void { 692 let execFun = (): Want => { 693 return bundleManager.getLaunchWantForBundleNative(bundleName, EMPTY_USER_ID, false); 694 }; 695 let p1 = taskpool.execute(execFun); 696 p1.then((e: NullishType) => { 697 let want: Want = e as Want; 698 callback(null, want); 699 },(err: Error): void => { 700 callback(err as BusinessError, undefined); 701 }); 702 } 703 704 function getAppCloneBundleInfo(bundleName: string, appIndex: number, 705 bundleFlags: number, userId?: number): Promise<BundleInfo> { 706 let p = new Promise<BundleInfo>((resolve: (bundleInfo: BundleInfo) => void, 707 reject: (error: BusinessError) => void) => { 708 let userIdInfo: number = userId ?? EMPTY_USER_ID; 709 let execFun = (): BundleInfo => { 710 return bundleManager.getAppCloneBundleInfoNative(bundleName, appIndex, bundleFlags, userIdInfo); 711 }; 712 let p1 = taskpool.execute(execFun); 713 p1.then((e: NullishType) => { 714 let resultBundleInfo: BundleInfo = e as BundleInfo; 715 resolve(resultBundleInfo); 716 }, (err: Error): void => { 717 reject(err as BusinessError); 718 }); 719 } 720 ); 721 return p; 722 } 723 724 function getBundleNameByUid(uid: number, callback: AsyncCallback<string>): void { 725 let execFun = (): string => { 726 return bundleManager.getBundleNameByUidNative(uid, false); 727 }; 728 let p1 = taskpool.execute(execFun); 729 p1.then((e: NullishType) => { 730 let result: string = e as string; 731 callback(null, result); 732 }).catch((err: Error): void => { 733 callback(err as BusinessError, undefined); 734 }); 735 } 736 737 function getBundleNameByUid(uid: number): Promise<string> { 738 let p = new Promise<string>((resolve: (result: string) => void, reject: (error: BusinessError) => void) => { 739 let execFun = (): string => { 740 return bundleManager.getBundleNameByUidNative(uid, false); 741 }; 742 let p1 = taskpool.execute(execFun); 743 p1.then((e: NullishType) => { 744 let result: string = e as string; 745 resolve(result); 746 }).catch((err: Error): void => { 747 reject(err as BusinessError); 748 }); 749 } 750 ); 751 return p; 752 } 753 754 function queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, 755 extensionAbilityFlags: number, callback: AsyncCallback<Array<ExtensionAbilityInfo>>): void { 756 let execFun = (): Array<ExtensionAbilityInfo> => { 757 return bundleManager.queryExtensionAbilityInfoNative( 758 want, extensionAbilityType, "", extensionAbilityFlags, EMPTY_USER_ID, false, false); 759 }; 760 let p1 = taskpool.execute(execFun); 761 p1.then((e: NullishType) => { 762 let extensionAbilityInfos: Array<ExtensionAbilityInfo> = e as Array<ExtensionAbilityInfo>; 763 callback(null, extensionAbilityInfos); 764 },(err: Error): void => { 765 callback(err as BusinessError, undefined); 766 }); 767 } 768 769 function queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, 770 extensionAbilityFlags: number, userId: number, callback: AsyncCallback<Array<ExtensionAbilityInfo>>): void { 771 let execFun = (): Array<ExtensionAbilityInfo> => { 772 return bundleManager.queryExtensionAbilityInfoNative( 773 want, extensionAbilityType, "", extensionAbilityFlags, userId, false, false); 774 }; 775 let p1 = taskpool.execute(execFun); 776 p1.then((e: NullishType) => { 777 let extensionAbilityInfos: Array<ExtensionAbilityInfo> = e as Array<ExtensionAbilityInfo>; 778 callback(null, extensionAbilityInfos); 779 },(err: Error): void => { 780 callback(err as BusinessError, undefined); 781 }); 782 } 783 784 function queryExtensionAbilityInfo(want: Want, extensionAbilityType: ExtensionAbilityType, 785 extensionAbilityFlags: number, userId?: number): Promise<Array<ExtensionAbilityInfo>> { 786 let p = new Promise<Array<ExtensionAbilityInfo>>(( 787 resolve: (extensionAbilityInfos: Array<ExtensionAbilityInfo>) => void, 788 reject: (error: BusinessError) => void) => { 789 let userIdInfo: number = userId ?? EMPTY_USER_ID; 790 let execFun = (): Array<ExtensionAbilityInfo> => { 791 return bundleManager.queryExtensionAbilityInfoNative( 792 want, extensionAbilityType, "", extensionAbilityFlags, userIdInfo, false, false); 793 }; 794 let p1 = taskpool.execute(execFun); 795 p1.then((e: NullishType) => { 796 let extensionAbilityInfos: Array<ExtensionAbilityInfo> = e as Array<ExtensionAbilityInfo>; 797 resolve(extensionAbilityInfos); 798 }, (err: Error): void => { 799 reject(err as BusinessError); 800 }); 801 } 802 ); 803 return p; 804 } 805 806 function isAbilityEnabled(info: AbilityInfo, appIndex: number): Promise<boolean> { 807 let p = new Promise<boolean>((resolve: (isEnabled: boolean) => void, reject: (error: BusinessError) => void) => { 808 let execFun = (): boolean => { 809 return bundleManager.isAbilityEnabledNative(info, appIndex, false); 810 }; 811 let p1 = taskpool.execute(execFun); 812 p1.then((e: NullishType) => { 813 let isEnabled: boolean = e as boolean; 814 resolve(isEnabled); 815 }, (err: Error): void => { 816 reject(err as BusinessError); 817 }); 818 } 819 ); 820 return p; 821 } 822 823 function isAbilityEnabled(info: AbilityInfo): Promise<boolean> { 824 let p = new Promise<boolean>((resolve: (isEnabled: boolean) => void, reject: (error: BusinessError) => void) => { 825 let execFun = (): boolean => { 826 return bundleManager.isAbilityEnabledNative(info, 0, false); 827 }; 828 let p1 = taskpool.execute(execFun); 829 p1.then((e: NullishType) => { 830 let isEnabled: boolean = e as boolean; 831 resolve(isEnabled); 832 }, (err: Error): void => { 833 reject(err as BusinessError); 834 }); 835 } 836 ); 837 return p; 838 } 839 840 function isAbilityEnabled(info: AbilityInfo, callback: AsyncCallback<boolean>): void { 841 let execFun = (): boolean => { 842 return bundleManager.isAbilityEnabledNative(info, 0, false); 843 }; 844 let p1 = taskpool.execute(execFun); 845 p1.then((e: NullishType) => { 846 let isEnabled: boolean = e as boolean; 847 callback(null, isEnabled); 848 }, (err: Error): void => { 849 callback(err as BusinessError, undefined); 850 }); 851 } 852 853 function setAbilityEnabled(info: AbilityInfo, appIndex: number, isEnabled: boolean): Promise<void> { 854 let p = new Promise<void>((resolve: (v:undefined) => void, reject: (error: BusinessError) => void) : void => { 855 let execFun = (): void => { 856 return bundleManager.setAbilityEnabledNative(info, isEnabled, appIndex, false); 857 }; 858 let p1 = taskpool.execute(execFun); 859 p1.then((): void => { 860 resolve(undefined); 861 }, (err: Error): void => { 862 reject(err as BusinessError); 863 }); 864 } 865 ); 866 return p; 867 } 868 869 function setAbilityEnabled(info: AbilityInfo, isEnabled: boolean): Promise<void> { 870 let p = new Promise<void>((resolve: (v:undefined) => void, reject: (error: BusinessError) => void) : void => { 871 let execFun = (): void => { 872 return bundleManager.setAbilityEnabledNative(info, isEnabled, 0, false); 873 }; 874 let p1 = taskpool.execute(execFun); 875 p1.then((): void => { 876 resolve(undefined); 877 }, (err: Error): void => { 878 reject(err as BusinessError); 879 }); 880 } 881 ); 882 return p; 883 } 884 885 function setAbilityEnabled(info: AbilityInfo, isEnabled: boolean, callback: AsyncCallback<void>): void { 886 let execFun = (): void => { 887 return bundleManager.setAbilityEnabledNative(info, isEnabled, 0, false); 888 }; 889 let p1 = taskpool.execute(execFun); 890 p1.then(() => { 891 callback(null, undefined); 892 }, (err: Error): void => { 893 callback(err as BusinessError, undefined); 894 }); 895 } 896 897 function setApplicationEnabled(bundleName: string, appIndex: number, isEnabled: boolean): Promise<void> { 898 let p = new Promise<void>((resolve: (v:undefined) => void, reject: (error: BusinessError) => void) : void => { 899 let execFun = (): void => { 900 return bundleManager.setApplicationEnabledNative(bundleName, isEnabled, appIndex, false); 901 }; 902 let p1 = taskpool.execute(execFun); 903 p1.then((): void => { 904 resolve(undefined); 905 }, (err: Error): void => { 906 reject(err as BusinessError); 907 }); 908 } 909 ); 910 return p; 911 } 912 913 function setApplicationEnabled(bundleName: string, isEnabled: boolean): Promise<void> { 914 let p = new Promise<void>((resolve: (v:undefined) => void, reject: (error: BusinessError) => void) : void => { 915 let execFun = (): void => { 916 return bundleManager.setApplicationEnabledNative(bundleName, isEnabled, 0, false); 917 }; 918 let p1 = taskpool.execute(execFun); 919 p1.then((): void => { 920 resolve(undefined); 921 }, (err: Error): void => { 922 reject(err as BusinessError); 923 }); 924 } 925 ); 926 return p; 927 } 928 929 function setApplicationEnabled(bundleName: string, isEnabled: boolean, callback: AsyncCallback<void>): void { 930 let execFun = (): void => { 931 return bundleManager.setApplicationEnabledNative(bundleName, isEnabled, 0, false); 932 }; 933 let p1 = taskpool.execute(execFun); 934 p1.then(() => { 935 callback(null, undefined); 936 }, (err: Error): void => { 937 callback(err as BusinessError, undefined); 938 }); 939 } 940 941 function getDynamicIcon(bundleName: string): Promise<string> { 942 let p = new Promise<string>(( 943 resolve: (icon: string) => void, reject: (error: BusinessError) => void) => { 944 let execFun = (): string => { 945 return bundleManager.getDynamicIconNative(bundleName); 946 }; 947 let p1 = taskpool.execute(execFun); 948 p1.then((e: NullishType) => { 949 let icon: string = e as string; 950 resolve(icon); 951 }, (err: Error): void => { 952 reject(err as BusinessError); 953 }); 954 } 955 ); 956 return p; 957 } 958 959 function queryAbilityInfo(wants: Array<Want>, abilityFlags: number, userId?: number): Promise<Array<AbilityInfo>> { 960 let p = new Promise<Array<AbilityInfo>>((resolve: (abilityInfos: Array<AbilityInfo>) 961 => void, reject: (error: BusinessError) => void) => { 962 let userIdInfo: number = userId ?? EMPTY_USER_ID; 963 let execFun = (): Array<AbilityInfo> => { 964 return bundleManager.queryAbilityInfoWithWantsNative(wants, abilityFlags, userIdInfo); 965 }; 966 let p1 = taskpool.execute(execFun); 967 p1.then((e: NullishType) => { 968 let resultAbilityInfos: Array<AbilityInfo> = e as Array<AbilityInfo>; 969 resolve(resultAbilityInfos); 970 }, (err: Error): void => { 971 reject(err as BusinessError); 972 }); 973 } 974 ); 975 return p; 976 } 977 978 function enableDynamicIcon(bundleName: string, moduleName: string): Promise<void> { 979 let p = new Promise<void>((resolve: (v:undefined) => void, reject: (error: BusinessError) => void) : void => { 980 let execFun = (): void => { 981 return bundleManager.enableDynamicIconNative(bundleName, moduleName); 982 }; 983 let p1 = taskpool.execute(execFun); 984 p1.then((): void => { 985 resolve(undefined); 986 }, (err: Error): void => { 987 reject(err as BusinessError); 988 }); 989 } 990 ); 991 return p; 992 } 993} 994 995export default bundleManager; 996