diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index ceba71e9f..7d244c60a 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -28,6 +28,10 @@
+
+
+
+
diff --git a/lib/core/translations/language/en_us.dart b/lib/core/translations/language/en_us.dart
index a0ef8f942..1ea125f22 100644
--- a/lib/core/translations/language/en_us.dart
+++ b/lib/core/translations/language/en_us.dart
@@ -532,6 +532,12 @@ const Map enUS = {
'Used for connecting and managing Bluetooth devices',
'bluetoothPermissionDetailDesc':
'Connecting to Bluetooth headphones and other devices requires Bluetooth permission',
+ 'bluetoothScanPermissionDesc': 'Used for scanning nearby Bluetooth devices',
+ 'bluetoothScanPermissionDetailDesc':
+ 'Scanning for nearby Bluetooth devices requires Bluetooth scan permission',
+ 'bluetoothConnectPermissionDesc': 'Used for connecting to Bluetooth devices',
+ 'bluetoothConnectPermissionDetailDesc':
+ 'Connecting to Bluetooth devices requires Bluetooth connect permission',
'notificationPermissionDesc': 'Used for sending notification messages',
'notificationPermissionDetailDesc':
'App needs notification permission to send you important alerts and messages',
diff --git a/lib/core/translations/language/zh_cn.dart b/lib/core/translations/language/zh_cn.dart
index 3006dbb9a..f52ebd4ab 100644
--- a/lib/core/translations/language/zh_cn.dart
+++ b/lib/core/translations/language/zh_cn.dart
@@ -495,6 +495,10 @@ const Map zhCN = {
'contactsPermissionDetailDesc': '拨打电话和发送短信功能需要联系人权限以选择联系人',
'bluetoothPermissionDesc': '用于连接和管理蓝牙设备',
'bluetoothPermissionDetailDesc': '连接蓝牙耳机等设备需要蓝牙权限',
+ 'bluetoothScanPermissionDesc': '用于扫描附近的蓝牙设备',
+ 'bluetoothScanPermissionDetailDesc': '扫描附近蓝牙设备需要蓝牙扫描权限',
+ 'bluetoothConnectPermissionDesc': '用于连接蓝牙设备',
+ 'bluetoothConnectPermissionDetailDesc': '连接蓝牙设备需要蓝牙连接权限',
'notificationPermissionDesc': '用于发送通知消息',
'notificationPermissionDetailDesc': '应用需要通知权限以向您发送重要提醒和消息',
'appNeedsPermissionForFullFunction': '应用需要此权限以提供完整功能',
diff --git a/lib/modules/meeting/controllers/meeting_home_controller.dart b/lib/modules/meeting/controllers/meeting_home_controller.dart
index 1b5af2369..e994d5025 100644
--- a/lib/modules/meeting/controllers/meeting_home_controller.dart
+++ b/lib/modules/meeting/controllers/meeting_home_controller.dart
@@ -1,5 +1,6 @@
import 'dart:io';
+import 'package:device_info_plus/device_info_plus.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
@@ -88,6 +89,24 @@ class MeetingHomeController extends GetxController {
// 请求存储权限
void _requestStoragePermission() async {
+ // 只在Android 10及以下版本请求存储权限
+ if (Platform.isAndroid) {
+ try {
+ final deviceInfo = DeviceInfoPlugin();
+ final androidInfo = await deviceInfo.androidInfo;
+ final sdkVersion = androidInfo.version.sdkInt;
+
+ // Android 11+ (API 30+) 不需要存储权限
+ if (sdkVersion >= 30) {
+ Logger.d("Permission", "Android 11+版本,无需请求存储权限");
+ return;
+ }
+ } catch (e) {
+ Logger.e("Permission", "获取Android版本信息失败: $e");
+ // 如果获取版本失败,为了兼容性还是请求权限
+ }
+ }
+
PermissionUtil.instance
.requestPermission(
permissionType: Permission.storage,
diff --git a/lib/modules/permissions/controllers/permissions_controller.dart b/lib/modules/permissions/controllers/permissions_controller.dart
index fc483dfbe..4034cb772 100644
--- a/lib/modules/permissions/controllers/permissions_controller.dart
+++ b/lib/modules/permissions/controllers/permissions_controller.dart
@@ -2,67 +2,149 @@ import 'package:get/get.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter/material.dart';
import 'dart:io' show Platform;
+import 'package:device_info_plus/device_info_plus.dart';
import '../../../core/utils/permission_util.dart';
class PermissionsController extends GetxController {
// 权限状态映射
- final RxMap permissionStatuses =
+ final RxMap permissionStatuses =
{}.obs;
// 是否正在请求权限
final RxBool isRequestingPermission = false.obs;
+
+ // Android版本信息(用于权限组显示判断)
+ final RxInt androidSdkVersion = 0.obs;
@override
void onInit() {
super.onInit();
+ _initAndroidVersion();
checkAllPermissions();
}
+
+ /// 初始化Android版本信息
+ Future _initAndroidVersion() async {
+ if (Platform.isAndroid) {
+ try {
+ final deviceInfo = DeviceInfoPlugin();
+ final androidInfo = await deviceInfo.androidInfo;
+ androidSdkVersion.value = androidInfo.version.sdkInt;
+ } catch (e) {
+ print('获取Android版本信息失败: $e');
+ androidSdkVersion.value = 0;
+ }
+ }
+ }
+
+ /// 检查是否应该显示蓝牙权限组
+ bool shouldShowBluetoothPermissions() {
+ if (Platform.isAndroid) {
+ // Android 12+ (API 31+) 才显示蓝牙权限组
+ return androidSdkVersion.value >= 31;
+ } else if (Platform.isIOS) {
+ // iOS显示蓝牙权限组
+ return true;
+ }
+ return false;
+ }
+
+ /// 检查是否应该显示存储权限组
+ bool shouldShowStoragePermissions() {
+ if (Platform.isAndroid) {
+ // Android 10及以下版本 (API 29及以下) 才显示存储权限组
+ return androidSdkVersion.value <= 29 && androidSdkVersion.value > 0;
+ }
+ // iOS系统不显示存储权限组
+ return false;
+ }
/// 检查所有权限状态
Future