From a0bd305d2b1313331044a6d1ea48a255f3193eb8 Mon Sep 17 00:00:00 2001 From: huangxiaoyao <976125628@qq.com> Date: Sat, 21 Sep 2024 15:01:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=80=9A=E7=9F=A5=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huangxiaoyao <976125628@qq.com> --- .../permissionhandler/PermissionManager.ets | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/permission_handler_ohos/ohos/src/main/ets/com/baseflow/permissionhandler/PermissionManager.ets b/permission_handler_ohos/ohos/src/main/ets/com/baseflow/permissionhandler/PermissionManager.ets index 413ba4e..7b8e3df 100644 --- a/permission_handler_ohos/ohos/src/main/ets/com/baseflow/permissionhandler/PermissionManager.ets +++ b/permission_handler_ohos/ohos/src/main/ets/com/baseflow/permissionhandler/PermissionManager.ets @@ -22,7 +22,8 @@ import Log from '@ohos/flutter_ohos/src/main/ets/util/Log'; import UIAbility from '@ohos.app.ability.UIAbility'; import ArrayList from '@ohos.util.ArrayList'; import { ErrorCallback } from './ErrorCallback'; -import { Callback } from '@ohos.base'; +import { BusinessError, Callback } from '@ohos.base'; +import { notificationManager } from '@kit.NotificationKit'; export class PermissionManager { private tokenId: number | null = null; @@ -55,7 +56,12 @@ export class PermissionManager { private determinePermissionStatus(permission: number, successCallback: CheckPermissionSuccessCallback): void { if (permission == PermissionConstants.PERMISSION_GROUP_NOTIFICATION) { - this.checkPermission(successCallback, 'ohos.permission.NOTIFICATION_CONTROLLER'); + let enabled = notificationManager.isNotificationEnabledSync(); + if (enabled) { + successCallback.onSuccess(PermissionConstants.PERMISSION_STATUS_GRANTED); + } else { + successCallback.onSuccess(PermissionConstants.PERMISSION_STATUS_DENIED); + } return; } if (permission == PermissionConstants.PERMISSION_GROUP_BLUETOOTH) { @@ -142,7 +148,21 @@ export class PermissionManager { let permission: number = PermissionUtils.parseOhosName(permissionName); if (permission == PermissionConstants.PERMISSION_GROUP_UNKNOWN) continue; - if (permission == PermissionConstants.PERMISSION_GROUP_MICROPHONE) { + if (permission == PermissionConstants.PERMISSION_GROUP_NOTIFICATION) { + notificationManager.requestEnableNotification(this.ability?.context).then(() => { + let enabled = notificationManager.isNotificationEnabledSync(); + if (enabled) { + this.requestResults?.set(PermissionConstants.PERMISSION_GROUP_NOTIFICATION, PermissionConstants.PERMISSION_STATUS_GRANTED); + } else { + this.requestResults?.set(PermissionConstants.PERMISSION_GROUP_NOTIFICATION, PermissionConstants.PERMISSION_STATUS_DENIED); + } + this.successCallback?.onSuccess(this.requestResults as Map); + }).catch((err: BusinessError) => { + this.requestResults?.set(PermissionConstants.PERMISSION_GROUP_NOTIFICATION, PermissionConstants.PERMISSION_STATUS_DENIED); + this.successCallback?.onSuccess(this.requestResults as Map); + }); + return; + } else if (permission == PermissionConstants.PERMISSION_GROUP_MICROPHONE) { this.requestResults?.set(PermissionConstants.PERMISSION_GROUP_MICROPHONE, PermissionUtils.toPermissionStatus(authResult)); this.requestResults?.set(PermissionConstants.PERMISSION_GROUP_SPEECH, PermissionUtils.toPermissionStatus(authResult)); } else if (permission == PermissionConstants.PERMISSION_GROUP_LOCATION_ALWAYS) { -- Gitee