From d4c7d7180e955a32aecfbdc695fe9d067c97eee7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9E=97=E9=94=8B?= <2535831261@qq.com>
Date: Wed, 1 Jul 2026 12:18:12 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4AndroidManifest.xml=E4=B8=AD?=
=?UTF-8?q?=E7=9A=84READ=5FMEDIA=5FVIDEO=E6=9D=83=E9=99=90=EF=BC=8C?=
=?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0view=5Fmodel=5Frecording=E4=B8=AD?=
=?UTF-8?q?=E7=9A=84=E6=9D=83=E9=99=90=E9=80=BB=E8=BE=91=E3=80=82dart?=
=?UTF-8?q?=E7=A1=AE=E4=BF=9D=E6=96=87=E4=BB=B6=E4=BF=9D=E5=AD=98=E6=9D=83?=
=?UTF-8?q?=E9=99=90=E4=BB=85=E9=80=82=E7=94=A8=E4=BA=8EAndroid=20SDK?=
=?UTF-8?q?=E7=89=88=E6=9C=AC28=E5=8F=8A=E4=BB=A5=E4=B8=8B=E3=80=82?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95=E4=BB=A5=E9=AA=8C=E8=AF=81?=
=?UTF-8?q?Android=2013=E5=92=8C=E6=9C=AA=E7=9F=A5SDK=E7=89=88=E6=9C=AC?=
=?UTF-8?q?=E7=9A=84=E6=9D=83=E9=99=90=E8=A1=8C=E4=B8=BA=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
android/app/src/main/AndroidManifest.xml | 3 +--
.../view-model/view_model_recording.dart | 6 +++---
.../recording/view_model_recording_test.dart | 19 +++++++++++++++++++
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 620d7f6..b11e83c 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -10,7 +10,6 @@
-
@@ -57,4 +56,4 @@
-
\ No newline at end of file
+
diff --git a/lib/features/recording/view-model/view_model_recording.dart b/lib/features/recording/view-model/view_model_recording.dart
index d4fe6e6..2cdca50 100644
--- a/lib/features/recording/view-model/view_model_recording.dart
+++ b/lib/features/recording/view-model/view_model_recording.dart
@@ -41,10 +41,10 @@ List recordingFileSavePermissionsForHost({
return const [];
}
if (isAndroid) {
- if (androidSdkInt != null && androidSdkInt >= 29) {
- return const [];
+ if (androidSdkInt != null && androidSdkInt <= 28) {
+ return [Permission.storage];
}
- return [Permission.storage];
+ return const [];
}
return const [];
}
diff --git a/test/features/recording/view_model_recording_test.dart b/test/features/recording/view_model_recording_test.dart
index 25dde3f..a2d28f7 100644
--- a/test/features/recording/view_model_recording_test.dart
+++ b/test/features/recording/view_model_recording_test.dart
@@ -411,6 +411,25 @@ void main() {
expect(permissions, isEmpty);
});
+
+ test('does not request file save permission on Android 13 and above', () {
+ final permissions = recordingFileSavePermissionsForHost(
+ isIOS: false,
+ isAndroid: true,
+ androidSdkInt: 33,
+ );
+
+ expect(permissions, isEmpty);
+ });
+
+ test('does not request file save permission when Android SDK is unknown', () {
+ final permissions = recordingFileSavePermissionsForHost(
+ isIOS: false,
+ isAndroid: true,
+ );
+
+ expect(permissions, isEmpty);
+ });
});
group('RecordingViewModel.getClipboardContent', () {