From 41cbd583bac5b1440aa2b2b6b1d3f052d0a5c46b Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 12 Aug 2025 12:46:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(=E6=9D=83=E9=99=90=E8=A7=86=E5=9B=BE):?= =?UTF-8?q?=20=E4=BB=85=E5=9C=A8Android=E5=B9=B3=E5=8F=B0=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=80=9A=E8=AE=AF=E6=9D=83=E9=99=90=E7=BB=84=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8DiOS=E5=B9=B3=E5=8F=B0=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=E7=9A=84=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/views/permissions_view.dart | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/modules/settings/views/permissions_view.dart b/lib/modules/settings/views/permissions_view.dart index c6eebac8c..bf83d02fc 100644 --- a/lib/modules/settings/views/permissions_view.dart +++ b/lib/modules/settings/views/permissions_view.dart @@ -4,6 +4,8 @@ import 'package:permission_handler/permission_handler.dart'; import '../controllers/settings_controller.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'dart:ui'; +import 'dart:io' show Platform; + import '../../../core/utils/permission_util.dart'; // 引入PermissionUtil class PermissionsView extends GetView { @@ -37,7 +39,7 @@ class PermissionsView extends GetView { centerTitle: true, ), body: FutureBuilder>( - future: controller.checkAllPermissions(), + future: controller.checkAllPermissions(), //检查权限当前状态 builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return const Center(child: CircularProgressIndicator()); @@ -45,8 +47,8 @@ class PermissionsView extends GetView { if (snapshot.hasError) { return Center( - child: Text('getPermissionStatusFailed'.tr + - ': ${snapshot.error}')); // 获取权限状态失败 + child: Text( + '${'getPermissionStatusFailed'.tr}: ${snapshot.error}')); // 获取权限状态失败 } final permissionStatuses = snapshot.data ?? {}; @@ -54,15 +56,16 @@ class PermissionsView extends GetView { return ListView( padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h), children: [ - // 通讯权限组 - _buildPermissionSection( - 'communicationPermissions'.tr, // 通讯权限 - Icons.phone_android, - [Permission.phone, Permission.sms], - permissionStatuses, - isDarkMode), - - SizedBox(height: 20.h), + // 通讯权限组- iOS平台没有通讯权限 + if (Platform.isAndroid) ...[ + _buildPermissionSection( + 'communicationPermissions'.tr, // 通讯权限 + Icons.phone_android, + [Permission.phone, Permission.sms], + permissionStatuses, + isDarkMode), + SizedBox(height: 20.h), + ], // 日历权限组 _buildPermissionSection( From 1d235f415b7935c67ed9415f7f93db675ae64e74 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Tue, 12 Aug 2025 16:11:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(=E6=9D=83=E9=99=90):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=B2=BE=E7=A1=AE=E9=97=B9=E9=92=9F=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在AndroidManifest.xml中添加SCHEDULE_EXACT_ALARM权限声明 在设置控制器中添加闹钟权限配置项 更新中英文翻译文件添加闹钟权限相关文案 在权限管理页面添加闹钟权限显示逻辑 --- android/app/src/main/AndroidManifest.xml | 2 ++ lib/core/translations/language/en_us.dart | 6 ++++++ lib/core/translations/language/zh_cn.dart | 4 ++++ .../controllers/settings_controller.dart | 16 ++++++++++++++-- .../settings/views/permissions_view.dart | 19 +++++++++++++++++++ 5 files changed, 45 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 127288e55..ebb128fb5 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -50,6 +50,8 @@ + + diff --git a/lib/core/translations/language/en_us.dart b/lib/core/translations/language/en_us.dart index 7dca392ef..b4c776ab6 100644 --- a/lib/core/translations/language/en_us.dart +++ b/lib/core/translations/language/en_us.dart @@ -487,15 +487,19 @@ const Map enUS = { // 权限管理页面 'getPermissionStatusFailed': 'Failed to get permission status', 'communicationPermissions': 'Communication Permissions', + 'alarmPermissions': 'Alarm Permissions', 'calendarPermissions': 'Calendar Permissions', 'locationPermissions': 'Location Permissions', 'phone': 'Phone', 'sms': 'SMS', + 'alarm': 'Alarm', 'calendarWrite': 'Calendar Write', 'calendarFullAccess': 'Calendar Full Access', 'locationInfo': 'Location Info', 'phonePermissionDesc': 'Used for phone call functionality', 'smsPermissionDesc': 'Used for SMS functionality', + 'alarmPermissionDesc': + 'Used to set exact alarms to ensure reminders trigger on time', 'calendarWritePermissionDesc': 'Used for creating calendar events and reminders', 'calendarFullAccessPermissionDesc': @@ -512,6 +516,8 @@ const Map enUS = { 'phonePermissionDetailDesc': 'Phone call functionality requires phone permission', 'smsPermissionDetailDesc': 'SMS functionality requires SMS permission', + 'alarmPermissionDetailDesc': + 'This permission is required to set exact alarms and ensure reminders trigger on time', 'calendarWritePermissionDetailDesc': 'Creating calendar events requires calendar write permission', 'calendarFullAccessPermissionDetailDesc': diff --git a/lib/core/translations/language/zh_cn.dart b/lib/core/translations/language/zh_cn.dart index d73546416..e0757379e 100644 --- a/lib/core/translations/language/zh_cn.dart +++ b/lib/core/translations/language/zh_cn.dart @@ -455,15 +455,18 @@ const Map zhCN = { // 权限管理页面 'getPermissionStatusFailed': '获取权限状态失败', 'communicationPermissions': '通讯权限', + 'alarmPermissions': '闹钟权限', 'calendarPermissions': '日历权限', 'locationPermissions': '位置权限', 'phone': '电话', 'sms': '短信', + 'alarm': '闹钟', 'calendarWrite': '日历写入', 'calendarFullAccess': '日历完整访问', 'locationInfo': '位置信息', 'phonePermissionDesc': '用于拨打电话功能', 'smsPermissionDesc': '用于发送短信功能', + 'alarmPermissionDesc': '用于设置精确闹钟以确保提醒按时触发', 'calendarWritePermissionDesc': '用于创建日历事件和提醒', 'calendarFullAccessPermissionDesc': '用于读取和管理日历事件及提醒', 'locationPermissionDesc': '用于获取当前位置信息', @@ -477,6 +480,7 @@ const Map zhCN = { 'permissionRequestError': '请求权限时出错', 'phonePermissionDetailDesc': '拨打电话功能需要电话权限', 'smsPermissionDetailDesc': '发送短信功能需要短信权限', + 'alarmPermissionDetailDesc': '设置精确闹钟需要此权限,以确保提醒按时触发', 'calendarWritePermissionDetailDesc': '创建日历事件需要日历写入权限', 'calendarFullAccessPermissionDetailDesc': '管理日历事件需要完整日历权限', 'locationPermissionDetailDesc': '获取位置信息需要位置权限', diff --git a/lib/modules/settings/controllers/settings_controller.dart b/lib/modules/settings/controllers/settings_controller.dart index 4dcecf302..496e405e3 100644 --- a/lib/modules/settings/controllers/settings_controller.dart +++ b/lib/modules/settings/controllers/settings_controller.dart @@ -192,7 +192,18 @@ class SettingsController extends GetxController { }, {'type': Permission.bluetooth, 'name': '蓝牙', 'description': '用于连接蓝牙设备'} ] - } + }, + { + 'name': '闹钟权限', + 'icon': Icons.alarm, + 'permissions': [ + { + 'type': Permission.scheduleExactAlarm, + 'name': '闹钟', + 'description': '用于设置精确闹钟' + } + ] + }, ]; // 检查单个权限状态 @@ -453,7 +464,8 @@ class SettingsController extends GetxController { Logger().i('更新agent服务语音识别语言: ${supportedLanguages.join(', ')}'); // 调用agent服务更新语言设置 - final success = await AgentService.setSupportedLanguages(supportedLanguages); + final success = + await AgentService.setSupportedLanguages(supportedLanguages); if (success) { Logger().i('agent服务语言设置更新成功'); } else { diff --git a/lib/modules/settings/views/permissions_view.dart b/lib/modules/settings/views/permissions_view.dart index bf83d02fc..2b0ceaf80 100644 --- a/lib/modules/settings/views/permissions_view.dart +++ b/lib/modules/settings/views/permissions_view.dart @@ -66,6 +66,17 @@ class PermissionsView extends GetView { isDarkMode), SizedBox(height: 20.h), ], + // 闹钟权限组 + if (Platform.isAndroid) ...[ + _buildPermissionSection( + 'alarmPermissions'.tr, // 闹钟权限 + Icons.alarm, + [Permission.scheduleExactAlarm], + permissionStatuses, + isDarkMode, + ), + SizedBox(height: 20.h), + ], // 日历权限组 _buildPermissionSection( @@ -165,6 +176,8 @@ class PermissionsView extends GetView { return 'calendarFullAccess'.tr; // 日历完整访问 case Permission.location: return 'locationInfo'.tr; // 位置信息 + case Permission.scheduleExactAlarm: + return 'alarm'.tr; // 闹钟 default: return permission.toString(); } @@ -183,6 +196,8 @@ class PermissionsView extends GetView { return 'calendarFullAccessPermissionDesc'.tr; // 用于读取和管理日历事件及提醒 case Permission.location: return 'locationPermissionDesc'.tr; // 用于获取当前位置信息 + case Permission.scheduleExactAlarm: + return 'alarmPermissionDesc'.tr; // 设置精确闹钟需要此权限 default: return 'appFunctionNeeds'.tr; // 应用功能需要 } @@ -358,6 +373,8 @@ class PermissionsView extends GetView { return 'calendarFullAccess'.tr; // 日历完整访问 case Permission.location: return 'locationInfo'.tr; // 位置信息 + case Permission.scheduleExactAlarm: + return 'alarm'.tr; // 闹钟 default: return permission.toString(); } @@ -376,6 +393,8 @@ class PermissionsView extends GetView { return 'calendarFullAccessPermissionDetailDesc'.tr; // 管理日历事件需要完整日历权限 case Permission.location: return 'locationPermissionDetailDesc'.tr; // 获取位置信息需要位置权限 + case Permission.scheduleExactAlarm: + return 'alarmPermissionDetailDesc'.tr; // 设置精确闹钟需要此权限 default: return 'appNeedsPermissionForFullFunction'.tr; // 应用需要此权限以提供完整功能 }