|
|
@@ -18,6 +18,7 @@ import '../../data/bean/talks.dart';
|
|
|
import '../../data/consts/error_code.dart';
|
|
|
import '../../data/consts/event_report_id.dart';
|
|
|
import '../../data/repositories/talk_repository.dart';
|
|
|
+import '../../dialog/alert_dialog.dart';
|
|
|
import '../../resource/string.gen.dart';
|
|
|
import '../../utils/http_handler.dart';
|
|
|
import '../../utils/mmkv_util.dart';
|
|
|
@@ -210,11 +211,36 @@ class RecordHandler {
|
|
|
ToastUtil.showToast("需要授予录音权限才能使用录音功能");
|
|
|
}
|
|
|
|
|
|
+ Future<bool> _showRequestPermissionDialog() async {
|
|
|
+ bool? isAllow = await EAAlertDialog.show(
|
|
|
+ contentText: '是否允许小听获取此设备的麦克风权限,为您提供转文字、智能总结服务?',
|
|
|
+ cancelText: '禁止',
|
|
|
+ confirmText: '允许',
|
|
|
+ cancelOnTap: () {
|
|
|
+ EAAlertDialog.dismiss(result: false);
|
|
|
+ },
|
|
|
+ confirmOnTap: () {
|
|
|
+ EAAlertDialog.dismiss(result: true);
|
|
|
+ });
|
|
|
+ return isAllow ?? false;
|
|
|
+ }
|
|
|
+
|
|
|
Future<void> startOrContinueRecord() async {
|
|
|
- var status = await Permission.microphone.request();
|
|
|
- if (status != PermissionStatus.granted) {
|
|
|
- _onRecordPermissionDenied();
|
|
|
- return;
|
|
|
+ var isGranted = await Permission.microphone.status;
|
|
|
+ if (isGranted == PermissionStatus.granted) {
|
|
|
+ await Permission.microphone.request();
|
|
|
+ } else {
|
|
|
+ bool isAllow = await _showRequestPermissionDialog();
|
|
|
+ if (isAllow) {
|
|
|
+ var status = await Permission.microphone.request();
|
|
|
+ if (status != PermissionStatus.granted) {
|
|
|
+ _onRecordPermissionDenied();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _onRecordPermissionDenied();
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
await _requestForegroundTaskPermission().catchError((error) {
|