# @ohos.enterprise.EnterpriseAdminExtensionAbility(企业设备管理扩展能力)
本模块提供[企业设备管理扩展能力](../../mdm/mdm-kit-term.md#企业设备管理扩展能力)。
设备管理应用需要存在一个EnterpriseAdminExtensionAbility并重写相关接口,以此具备模块提供的各项能力,比如接收由系统发送的该应用被激活或者解除激活的通知。
> **说明:**
>
> 本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
>
> 本模块接口仅可在Stage模型下使用。
>
## 导入模块
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
```
## EnterpriseAdminExtensionAbility.onAdminEnabled
onAdminEnabled(): void
设备管理应用被激活事件回调。企业管理员或者员工部署设备管理应用,激活设备管理,系统通知设备管理应用已激活admin权限。设备管理应用可在此回调函数中进行初始化策略设置。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAdminEnabled() {
}
};
```
## EnterpriseAdminExtensionAbility.onAdminDisabled
onAdminDisabled(): void
设备管理应用被解除激活事件回调。企业管理员或者员工解除激活设备管理,系统通知设备管理应用已解除激活admin权限。设备管理应用可在此回调函数中通知企业管理员设备已脱管。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAdminDisabled() {
}
};
```
## EnterpriseAdminExtensionAbility.onBundleAdded
onBundleAdded(bundleName: string): void
应用安装事件回调,回调中包含应用包名。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用安装事件,端侧应用安装事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 被安装应用的包名。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onBundleAdded(bundleName: string) {
console.info(`Succeeded in calling onBundleAdded callback, added bundle name : ${bundleName}`);
}
};
```
## EnterpriseAdminExtensionAbility.onBundleAdded14+
onBundleAdded(bundleName: string, accountId: number): void
应用安装事件回调,回调中包含应用包名和账号ID。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用安装事件,端侧应用安装事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 被安装应用的包名。 |
| accountId | number | 是 | 被安装应用所在的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
// 由于存在同名回调方法onBundleAdded(bundleName: string),该回调方法无accountId参数,因此在实际调用时accountId必须为可选参数,写法请参考示例代码。如果删除accountId后的问号"?",编译会报错。
onBundleAdded(bundleName: string, accountId?: number) {
console.info(`Succeeded in calling onBundleAdded callback, added bundle name : ${bundleName}, accountId: ${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onBundleRemoved
onBundleRemoved(bundleName: string): void
应用卸载事件回调,回调中包含应用包名。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用卸载事件,端侧应用卸载事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 被卸载应用的包名。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onBundleRemoved(bundleName: string) {
console.info(`Succeeded in calling onBundleRemoved callback, removed bundle name : ${bundleName}`);
}
};
```
## EnterpriseAdminExtensionAbility.onBundleRemoved14+
onBundleRemoved(bundleName: string, accountId: number): void
应用卸载事件回调,回调中包含应用包名和账号ID。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用卸载事件,端侧应用卸载事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 被卸载应用的包名。 |
| accountId | number | 是 | 被卸载应用所在的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
// 由于存在同名回调方法onBundleRemoved(bundleName: string),该回调方法无accountId参数,因此在实际调用时accountId必须为可选参数,写法请参考示例代码。如果删除accountId后的问号"?",编译会报错。
onBundleRemoved(bundleName: string, accountId?: number) {
console.info(`Succeeded in calling onBundleRemoved callback, removed bundle name : ${bundleName}, accountId: ${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onAppStart
onAppStart(bundleName: string): void
应用启动事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_APP_START事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用启动事件,端侧应用启动事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 启动应用的包名。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAppStart(bundleName: string) {
console.info(`Succeeded in calling onAppStart callback, started bundle name : ${bundleName}`);
}
};
```
## EnterpriseAdminExtensionAbility.onAppStop
onAppStop(bundleName: string): void
应用停止事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_APP_STOP事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用停止事件,端侧应用停止事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 停止应用的包名。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAppStop(bundleName: string) {
console.info(`Succeeded in calling onAppStop callback, stopped bundle name : ${bundleName}`);
}
};
```
## EnterpriseAdminExtensionAbility.onSystemUpdate
onSystemUpdate(systemUpdateInfo: systemManager.SystemUpdateInfo): void
系统更新事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_SYSTEM_UPDATE事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统更新事件,端侧系统更新事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ---------------- | ------------------------------------------------------------ | ---- | -------------------- |
| systemUpdateInfo | [systemManager.SystemUpdateInfo](js-apis-enterprise-systemManager.md#systemupdateinfo) | 是 | 系统更新的版本信息。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
import { systemManager } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onSystemUpdate(systemUpdateInfo: systemManager.SystemUpdateInfo) {
console.info(`Succeeded in calling onSystemUpdate callback, version name : ${systemUpdateInfo.versionName}`);
}
};
```
## EnterpriseAdminExtensionAbility.onStart
onStart(): void
EnterpriseAdminExtensionAbility启动事件回调。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onStart() {
console.info(`Succeeded in calling onStart callback.`);
}
};
```
## EnterpriseAdminExtensionAbility.onAccountAdded18+
onAccountAdded(accountId: number): void
系统账号新增事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号新增事件,系统账号新增事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| accountId | number | 是 | 新增的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAccountAdded(accountId: number) {
console.info(`Succeeded in calling onAccountAdded callback, added accountId: ${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onAccountSwitched18+
onAccountSwitched(accountId: number): void
系统账号切换事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_SWITCHED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号切换事件,系统账号切换事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| accountId | number | 是 | 切换后的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAccountSwitched(accountId: number) {
console.info(`Succeeded in calling onAccountSwitched callback, switched accountId: ${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onAccountRemoved18+
onAccountRemoved(accountId: number): void
系统账号删除事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号删除事件,系统账号删除事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| accountId | number | 是 | 被删除的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onAccountRemoved(accountId: number) {
console.info(`Succeeded in calling onAccountRemoved callback, removed accountId: ${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onKioskModeEntering20+
onKioskModeEntering(bundleName: string, accountId: number): void
应用进入Kiosk模式回调,回调中包含应用包名和用户ID。
Kiosk模式为系统层面提供的一种应用运行模式,该模式下会将设备锁定在单个应用或者一组应用运行,同时对锁屏状态、状态栏、手势操作和关键功能进行控制,防止用户在设备上启动其它应用或执行其它操作。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 进入Kiosk模式应用的包名。 |
| accountId | number | 是 | 进入Kiosk模式应用所在的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onKioskModeEntering(bundleName: string, accountId: number): void {
console.info(`Succeeded in calling onKioskModeEntering callback, bundleName:${bundleName}, accountId:${accountId}`);
}
};
```
## EnterpriseAdminExtensionAbility.onKioskModeExiting20+
onKioskModeExiting(bundleName: string, accountId: number): void
应用退出Kiosk模式回调,回调中包含应用包名和用户ID。
**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager
**模型约束:** 此接口仅可在Stage模型下使用。
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ----- | ----------------------------------- | ---- | ------- |
| bundleName | string | 是 | 退出Kiosk模式应用的包名。 |
| accountId | number | 是 | 退出Kiosk模式应用所在的用户ID。 |
**示例:**
```ts
import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit';
export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
onKioskModeExiting(bundleName: string, accountId: number): void {
console.info(`Succeeded in calling onKioskModeExiting callback, bundleName:${bundleName}, accountId:${accountId}`);
}
};
```