diff --git a/permissionmanager/src/main/ets/common/components/dialog.ets b/permissionmanager/src/main/ets/common/components/dialog.ets index 2a1770a28bef65ed2c40a1b88b9b528fdb6c9f6e..08c0fc4233fbc5331ecd1583bce0541b68f2acd5 100644 --- a/permissionmanager/src/main/ets/common/components/dialog.ets +++ b/permissionmanager/src/main/ets/common/components/dialog.ets @@ -15,6 +15,7 @@ import Constants from '../utils/constant'; import audio from '@ohos.multimedia.audio' +import camera from '@ohos.multimedia.camera' @Extend(Button) function customizeButton() { .backgroundColor($r('app.color.default_background_color')) @@ -97,11 +98,19 @@ export struct globalDialog { } confirm() { - var audioManager = audio.getAudioManager(); - audioManager.setMicrophoneMute(true).then(() => { - this.globalIsOn = false - this.controller.close() - }) + if(globalThis.currentPermissionGroup == 'CAMERA') { + camera.getCameraManager(globalThis.context).then(cameraManager => { + cameraManager.muteCamera(true) + this.globalIsOn = false + this.controller.close() + }) + }else { + var audioManager = audio.getAudioManager(); + audioManager.setMicrophoneMute(true).then(() => { + this.globalIsOn = false + this.controller.close() + }) + } } cancel() { diff --git a/permissionmanager/src/main/ets/common/model/permissionGroup.ets b/permissionmanager/src/main/ets/common/model/permissionGroup.ets index 6495a1eed699eca747ab8a65a3e78891241a4fad..006f80704adfe72926aefa14e1dd8aa5afc7597d 100644 --- a/permissionmanager/src/main/ets/common/model/permissionGroup.ets +++ b/permissionmanager/src/main/ets/common/model/permissionGroup.ets @@ -568,5 +568,6 @@ export const polymorphismGroup: string[] = [ ] export const globalGroup: string[] = [ - "MICROPHONE" + "MICROPHONE", + "CAMERA" ] \ No newline at end of file diff --git a/permissionmanager/src/main/ets/pages/authority-management.ets b/permissionmanager/src/main/ets/pages/authority-management.ets index aceb2a8e1505d9ca2f226196a04efe347624baeb..d66c5402c9c0ca9cb4b9186495f984454cad5167 100644 --- a/permissionmanager/src/main/ets/pages/authority-management.ets +++ b/permissionmanager/src/main/ets/pages/authority-management.ets @@ -20,6 +20,7 @@ import router from '@system.router'; import bundle from "@ohos.bundle"; import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import audio from '@ohos.multimedia.audio' +import camera from '@ohos.multimedia.camera' import { groups, userGrantPermissions, permissionGroupPermissions, noNeedDisplayApp, globalGroup } from "../common/model/permissionGroup"; import { permissionGroups, permissionGroupIds } from "../common/model/permissionGroup"; import { makePy } from "../common/utils/utils"; @@ -114,13 +115,23 @@ struct authorityManagementPage { params: { routerData: dataList, backTitle: item.groupName } }) }else { - var audioManager = audio.getAudioManager(); - audioManager.isMicrophoneMute().then(value => { - router.push({ - uri: 'pages/authority-tertiary-groups', - params: { routerData: dataList, backTitle: item.groupName, globalIsOn: !value } + if(item.group == 'MICROPHONE') { + var audioManager = audio.getAudioManager(); + audioManager.isMicrophoneMute().then(value => { + router.push({ + uri: 'pages/authority-tertiary-groups', + params: { routerData: dataList, backTitle: item.groupName, globalIsOn: !value } + }) }) - }) + }else { + camera.getCameraManager(globalThis.context).then(cameraManager => { + let mute = cameraManager.isCameraMuted() + router.push({ + uri: 'pages/authority-tertiary-groups', + params: { routerData: dataList, backTitle: item.groupName, globalIsOn: !mute } + }) + }) + } } } }) diff --git a/permissionmanager/src/main/ets/pages/authority-tertiary-groups.ets b/permissionmanager/src/main/ets/pages/authority-tertiary-groups.ets index 8aad7aa8e3137d8b2329e10b7aa30f6926fe3ed6..49a3701369fec0f89d33a0580556943b739dcb72 100644 --- a/permissionmanager/src/main/ets/pages/authority-tertiary-groups.ets +++ b/permissionmanager/src/main/ets/pages/authority-tertiary-groups.ets @@ -20,6 +20,7 @@ import router from '@system.router'; import bundle from "@ohos.bundle"; import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import audio from '@ohos.multimedia.audio' +import camera from '@ohos.multimedia.camera' import { getAppLabel, getAppIcon, verifyAccessToken} from "../common/utils/utils"; import { makePy } from "../common/utils/utils"; import { authorizeDialog, globalDialog } from "../common/components/dialog"; @@ -455,10 +456,17 @@ struct applicationItem { .padding({ right: 0 }) .onChange((isOn: boolean) => { if(isOn) { - var audioManager = audio.getAudioManager(); - audioManager.setMicrophoneMute(false).then(() => { - this.globalIsOn = isOn - }) + if(globalThis.currentPermissionGroup == "CAMERA") { + camera.getCameraManager(globalThis.context).then(cameraManager => { + cameraManager.muteCamera(false) + this.globalIsOn = isOn + }) + }else { + var audioManager = audio.getAudioManager(); + audioManager.setMicrophoneMute(false).then(() => { + this.globalIsOn = isOn + }) + } } }) Row().onClick(() => { this.privacyDialogController.open() }) diff --git a/permissionmanager/src/main/ets/pages/globalSwitch.ets b/permissionmanager/src/main/ets/pages/globalSwitch.ets index 1a53b4ddd5306504af936caf30b8dc83cd200308..980c96879dfe7bfa43249e189e4fd40428634e22 100644 --- a/permissionmanager/src/main/ets/pages/globalSwitch.ets +++ b/permissionmanager/src/main/ets/pages/globalSwitch.ets @@ -15,8 +15,10 @@ import Constants from '../common/utils/constant'; import audio from '@ohos.multimedia.audio' +import camera from '@ohos.multimedia.camera'; import bundle from '@ohos.bundle'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; +import { Log } from '../common/utils/utils' const MICROPHONE = 'microphone' const CAMERA = 'camera' @@ -98,13 +100,31 @@ struct globalDialog { } accept() { - var audioManager = audio.getAudioManager(); - audioManager.setMicrophoneMute(false).then(() => { - globalThis.globalContext.terminateSelf() - }) + Log.info('global accept') + if(globalThis.globalState == MICROPHONE) { + var audioManager = audio.getAudioManager(); + audioManager.setMicrophoneMute(false).then(() => { + globalThis.globalContext.terminateSelf() + }) + }else if(globalThis.globalState == CAMERA) { + camera.getCameraManager(globalThis.globalContext).then(cameraManager => { + cameraManager.muteCamera(false) + globalThis.globalContext.terminateSelf() + }) + }else { + camera.getCameraManager(globalThis.globalContext).then(cameraManager => { + cameraManager.muteCamera(false) + var audioManager = audio.getAudioManager(); + audioManager.setMicrophoneMute(false).then(() => { + globalThis.globalContext.terminateSelf() + }) + }) + } + } cancel() { + Log.info('global cancel') globalThis.globalContext.terminateSelf() } diff --git a/permissionmanager/src/main/module.json b/permissionmanager/src/main/module.json index eafff1831d34940f8e4b865cdf15150d1783d882..389e2e94471258af3c20e768894587e7e1c9a266 100644 --- a/permissionmanager/src/main/module.json +++ b/permissionmanager/src/main/module.json @@ -8,7 +8,8 @@ "description": "$string:permissionmanager_desc", "mainElement": "MainAbility", "deviceTypes": [ - "default" + "default", + "tablet" ], "deliveryWithInstall": true, "installationFree": false, @@ -66,6 +67,9 @@ }, { "name": "ohos.permission.MICROPHONE" + }, + { + "name": "ohos.permission.MANAGE_CAMERA_CONFIG" } ] } diff --git a/signature/pm.p7b b/signature/pm.p7b index ef906f0038120cfda28b9188f03c7b56e532738f..8940dfeeb4815d5f9a8da88d534be758577574a4 100644 Binary files a/signature/pm.p7b and b/signature/pm.p7b differ