From 0e6d484e52ceaf982cc6bdfd85bac2e7638e9cff Mon Sep 17 00:00:00 2001
From: fuenmao <980740792@qq.com>
Date: Wed, 11 Dec 2024 16:11:47 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../android/app/src/main/AndroidManifest.xml | 3 -
wgshare/ios/Podfile | 61 ++++++++++++++++++-
.../lib/pages/metting/meeting_main_logic.dart | 5 +-
.../permission/AndroidPermissionHandler.dart | 30 ++++++++-
.../permission/IosPermissionHandler.dart | 31 +++++++++-
.../utils/permission/PermissionService.dart | 16 +++++
wgshare/lib/utils/permission_handler.dart | 36 -----------
7 files changed, 133 insertions(+), 49 deletions(-)
create mode 100644 wgshare/lib/utils/permission/PermissionService.dart
delete mode 100644 wgshare/lib/utils/permission_handler.dart
diff --git a/wgshare/android/app/src/main/AndroidManifest.xml b/wgshare/android/app/src/main/AndroidManifest.xml
index 79ad4d1..095a9e0 100644
--- a/wgshare/android/app/src/main/AndroidManifest.xml
+++ b/wgshare/android/app/src/main/AndroidManifest.xml
@@ -2,9 +2,6 @@
-
-
-
initRtc() async {
// 请求麦克风、摄像头权限
- PermissionHandler.requestCameraPermission();
- PermissionHandler.requestMicrophonePermission();
+ PermissionService.requestPermissions();
// 创建 RtcEngine 对象
state.rctEngine.value = createAgoraRtcEngineEx();
diff --git a/wgshare/lib/utils/permission/AndroidPermissionHandler.dart b/wgshare/lib/utils/permission/AndroidPermissionHandler.dart
index 0b4e6cb..68460b1 100644
--- a/wgshare/lib/utils/permission/AndroidPermissionHandler.dart
+++ b/wgshare/lib/utils/permission/AndroidPermissionHandler.dart
@@ -4,6 +4,7 @@ import 'package:permission_handler/permission_handler.dart';
import 'dart:io';
import '../device_info.dart';
+import '../toast_utils.dart';
class AndroidPermissionHandler {
Future requestAllPermissions() async {
@@ -13,6 +14,12 @@ class AndroidPermissionHandler {
await requestStoragePermission();
await requestNotificationPermission();
await requestPhonePermission();
+ await requestMicrophonePermission();
+ }
+
+ Future requestCameraToMicrophonePermissions() async {
+ await requestCameraPermission();
+ await requestMicrophonePermission();
}
Future requestLocationPermission() async {
@@ -54,11 +61,14 @@ class AndroidPermissionHandler {
Future requestCameraPermission() async {
PermissionStatus status = await Permission.camera.request();
if (status.isGranted) {
- print("Android: 相机权限已授予");
+ print("Android: 摄像头权限已授予");
} else if (status.isPermanentlyDenied) {
- print("Android: 相机权限被永久拒绝,请前往设置开启");
+ print("Android: 摄像头权限被永久拒绝,请前往设置开启");
+ ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
+ openAppSettings();
} else {
- print("Android: 相机权限被拒绝");
+ print("Android: 摄像头权限被拒绝");
+ ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
}
}
@@ -94,4 +104,18 @@ class AndroidPermissionHandler {
print("Android: 电话权限被拒绝");
}
}
+
+ static Future requestMicrophonePermission() async {
+ PermissionStatus status = await Permission.microphone.request();
+ if (status.isGranted) {
+ print("Android: 麦克风权限已授予");
+ } else if (status.isPermanentlyDenied) {
+ print("Android: 麦克风权限被永久拒绝,请前往设置开启");
+ ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
+ openAppSettings();
+ } else {
+ print("Android: 麦克风限被拒绝");
+ ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
+ }
+ }
}
\ No newline at end of file
diff --git a/wgshare/lib/utils/permission/IosPermissionHandler.dart b/wgshare/lib/utils/permission/IosPermissionHandler.dart
index 508e261..c79b289 100644
--- a/wgshare/lib/utils/permission/IosPermissionHandler.dart
+++ b/wgshare/lib/utils/permission/IosPermissionHandler.dart
@@ -1,5 +1,7 @@
import 'package:permission_handler/permission_handler.dart';
+import '../toast_utils.dart';
+
class IosPermissionHandler {
Future requestAllPermissions() async {
await requestLocationPermission();
@@ -8,6 +10,12 @@ class IosPermissionHandler {
await requestStoragePermission();
await requestNotificationPermission();
await requestPhonePermission();
+ await requestMicrophonePermission();
+ }
+
+ Future requestCameraToMicrophonePermissions() async {
+ await requestCameraPermission();
+ await requestMicrophonePermission();
}
Future requestLocationPermission() async {
@@ -33,11 +41,14 @@ class IosPermissionHandler {
Future requestCameraPermission() async {
PermissionStatus status = await Permission.camera.request();
if (status.isGranted) {
- print("iOS: 相机权限已授予");
+ print("iOS: 摄像头权限已授予");
} else if (status.isPermanentlyDenied) {
- print("iOS: 相机权限被永久拒绝,请前往设置开启");
+ print("iOS: 摄像头权限被永久拒绝,请前往设置开启");
+ ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
+ openAppSettings();
} else {
- print("iOS: 相机权限被拒绝");
+ print("iOS: 摄像头权限被拒绝");
+ ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
}
}
@@ -71,4 +82,18 @@ class IosPermissionHandler {
print("iOS: 电话权限被拒绝");
}
}
+
+ static Future requestMicrophonePermission() async {
+ PermissionStatus status = await Permission.microphone.request();
+ if (status.isGranted) {
+ print("iOS: 麦克风权限已授予");
+ } else if (status.isPermanentlyDenied) {
+ print("iOS: 麦克风权限被永久拒绝,请前往设置开启");
+ ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
+ openAppSettings();
+ } else {
+ print("iOS: 麦克风限被拒绝");
+ ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
+ }
+ }
}
\ No newline at end of file
diff --git a/wgshare/lib/utils/permission/PermissionService.dart b/wgshare/lib/utils/permission/PermissionService.dart
new file mode 100644
index 0000000..ca7b394
--- /dev/null
+++ b/wgshare/lib/utils/permission/PermissionService.dart
@@ -0,0 +1,16 @@
+import 'dart:io';
+
+import 'AndroidPermissionHandler.dart';
+import 'IosPermissionHandler.dart';
+
+class PermissionService {
+ static Future requestPermissions() async {
+ if (Platform.isIOS) {
+ // 调用iOS权限处理逻辑
+ await IosPermissionHandler().requestCameraToMicrophonePermissions();
+ } else if (Platform.isAndroid) {
+ // 调用Android权限处理逻辑
+ await AndroidPermissionHandler().requestCameraToMicrophonePermissions();
+ }
+ }
+}
\ No newline at end of file
diff --git a/wgshare/lib/utils/permission_handler.dart b/wgshare/lib/utils/permission_handler.dart
deleted file mode 100644
index 7213418..0000000
--- a/wgshare/lib/utils/permission_handler.dart
+++ /dev/null
@@ -1,36 +0,0 @@
-import 'package:flutter/cupertino.dart';
-import 'package:permission_handler/permission_handler.dart';
-import 'package:wgshare/utils/toast_utils.dart';
-
-class PermissionHandler {
-
- /// 摄像头权限
- static Future requestCameraPermission() async {
- PermissionStatus status = await Permission.camera.request();
- if (status.isGranted) {
- debugPrint("wgs输出===:权限-摄像头权限已授予");
- } else if (status.isPermanentlyDenied) {
- debugPrint("wgs输出===:权限-摄像头权限被永久拒绝,请前往设置开启");
- ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
- openAppSettings();
- } else {
- debugPrint("wgs输出===:权限-摄像头权限被拒绝");
- ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
- }
- }
-
- /// 麦克风权限
- static Future requestMicrophonePermission() async {
- PermissionStatus status = await Permission.microphone.request();
- if (status.isGranted) {
- debugPrint("wgs输出===:权限-麦克风权限已授予");
- } else if (status.isPermanentlyDenied) {
- debugPrint("wgs输出===:权限-麦克风权限被永久拒绝,请前往设置开启");
- ToastUtils.showError("权限被永久拒绝,请前往设置开启!");
- openAppSettings();
- } else {
- debugPrint("wgs输出===:权限-麦克风权限被拒绝");
- ToastUtils.showError("权限被拒绝,可能会导致相关功能不可用!");
- }
- }
-}
\ No newline at end of file