Files
easyMDM/entry/src/main/ets/pages/Index.ets
2025-10-22 04:04:02 +08:00

162 lines
4.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Index.ets
import { BusinessError } from '@kit.BasicServicesKit';
import { Want } from '@kit.AbilityKit';
@Entry
@Component
struct Index {
@State message: string = 'MDM相机控制';
@State cameraStatus: string = '未知';
@State isAdminActive: boolean = false;
aboutToAppear(): void {
// 初始化时检查管理权限状态
this.checkAdminStatus();
}
// 检查设备管理权限是否已激活
checkAdminStatus(): void {
try {
// 在实际应用中,这里需要检查当前应用是否已被激活为设备管理器
// 由于API限制这里仅作演示
console.info('Checking admin status');
// this.isAdminActive = deviceManager.isAdminActive();
} catch (error) {
console.error(`Failed to check admin status: ${error}`);
}
}
// 激活设备管理应用
activateAdmin(): void {
console.info('Attempting to activate admin');
// 实际应用中需要实现完整的激活流程
// 通常会跳转到系统设置页面请求激活
this.isAdminActive = true;
this.cameraStatus = '已启用';
}
// 切换相机状态
toggleCamera(): void {
if (!this.isAdminActive) {
console.warn('Admin is not active, cannot toggle camera');
this.message = '请先激活管理应用';
return;
}
console.info('Toggling camera status');
// 在实际应用中这里会调用EnterpriseAdminExtensionAbility中的方法
// 来控制相机的启用/禁用状态
if (this.cameraStatus === '已启用') {
// 禁用相机
try {
// 这里应该调用EnterpriseAdminExtensionAbility中的方法
// restrictions.setRestriction(..., "camera", true);
this.cameraStatus = '已禁用';
this.message = '相机已禁用';
} catch (error) {
console.error(`Failed to disable camera: ${error}`);
this.message = '禁用相机失败';
}
} else {
// 启用相机
try {
// 这里应该调用EnterpriseAdminExtensionAbility中的方法
// restrictions.setRestriction(..., "camera", false);
this.cameraStatus = '已启用';
this.message = '相机已启用';
} catch (error) {
console.error(`Failed to enable camera: ${error}`);
this.message = '启用相机失败';
}
}
}
build() {
Row() {
Column() {
Text(this.message)
.fontSize(40)
.fontWeight(FontWeight.Bold)
.textAlign(TextAlign.Center)
// 显示管理权限状态
Text('管理权限: ' + (this.isAdminActive ? '已激活' : '未激活'))
.fontSize(20)
.fontColor(this.isAdminActive ? Color.Green : Color.Red)
.margin({ top: 20 })
// 显示相机状态
Text('相机状态: ' + this.cameraStatus)
.fontSize(20)
.fontColor(this.cameraStatus === '已启用' ? Color.Green : Color.Red)
.margin({ top: 10 })
// 切换相机状态按钮
Button() {
Text('切换相机状态')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({
top: 30
})
.backgroundColor('#0D9FFB')
.width('80%')
.height('8%')
.onClick(() => {
this.toggleCamera();
})
// 激活管理应用按钮
Button() {
Text('激活管理应用')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({
top: 20
})
.backgroundColor('#4CAF50')
.width('80%')
.height('8%')
.onClick(() => {
this.activateAdmin();
})
// 添加按钮以响应用户onClick事件
Button() {
Text('Next')
.fontSize(25)
.fontWeight(FontWeight.Bold)
}
.type(ButtonType.Capsule)
.margin({
top: 30
})
.backgroundColor('#0D9FFB')
.width('40%')
.height('8%')
// 跳转按钮绑定onClick事件单击时跳转到第二页
.onClick(() => {
console.info(`Succeeded in clicking the 'Next' button.`)
// 获取UIContext
let uiContext: UIContext = this.getUIContext();
let router = uiContext.getRouter();
// 跳转到第二页
router.pushUrl({ url: 'pages/Second' }).then(() => {
console.info('Succeeded in jumping to the second page.')
}).catch((err: BusinessError) => {
console.error(`Failed to jump to the second page. Code is ${err.code}, message is ${err.message}`)
})
})
}
.width('100%')
.padding(20)
}
.height('100%')
.backgroundColor('#f0f0f0')
}
}