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', () {