diff --git a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart index ac26b9b7..266ff343 100644 --- a/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart +++ b/star_lock/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_page.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:image_picker/image_picker.dart'; +import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_logic.dart'; import 'package:star_lock/tools/custom_bottom_sheet.dart'; @@ -69,7 +70,7 @@ class _MinePersonInfoPageState extends State { ), ), action: () { - _openModalBottomSheet(); + requestCameraPermission(); }, )), Obx(() => CommonItem( @@ -169,6 +170,51 @@ class _MinePersonInfoPageState extends State { )); } + Future requestCameraPermission() async { + // 检查是否已经授予相机权限 + PermissionStatus status = await Permission.camera.status; + + if (status.isGranted) { + // 如果权限已经被授予,执行您的相机操作 + // 这里可以调用打开相机的方法或者跳转到相机页面等 + _openModalBottomSheet(); + } else { + // 如果权限尚未被授予,请求相机权限 + // 此处会显示系统权限请求对话框 + status = await Permission.camera.request(); + + if (status.isGranted) { + // 如果用户授予了相机权限,执行您的相机操作 + _openModalBottomSheet(); + } else { + // 如果用户拒绝了相机权限,您可以提供适当的提示 + // 或者引导用户手动授予权限 + _showPermissinDialog(); + } + } + } + + Future _showPermissinDialog() async { + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: const Text('Permission Required'), + content: const Text( + 'You need to grant camera permission to use this feature.'), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + ], + ); + }, + ); + } + Future _openModalBottomSheet() async { showModalBottomSheet( context: context,