androidManifest Flutter 中录音和音频存储需要什么权限?

问题描述 投票:0回答:1

我正在开发一个录音机应用程序,需要创建和存储音频文件,当我尝试在 Android 上请求权限时,我收到以下消息

未授予权限

这是我录制音频的功能

  void startRecording() async {
    print('PERM REQUEST');
    Map<Permission, PermissionStatus> permissions = await [
      Permission.storage,
      Permission.microphone,
    ].request();

    bool
    permissionsGranted =
    permissions[Permission.storage]!.isGranted &&
        permissions[Permission.microphone]!.isGranted;

    if (permissionsGranted) {
      Directory appFolder = Directory(Paths.recording);
      bool appFolderExists = await appFolder.exists();
      if (!appFolderExists) {
        final created = await appFolder.create(recursive: true);
        print(created.path);
      }

      final filepath = '${Paths.recording}/${DateTime.now().millisecondsSinceEpoch}${RecorderConstants.fileExtention}';
      print(filepath);
      final config = RecordConfig();

      await _audioRecorder.start(config, path: filepath);

      emit(RecordOn());
    } else {
      print('Permissions not granted');
    }
  }

我在清单中使用的权限

    <uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE” android:maxSdkVersion=“32” />
    <uses-permission android:name=“android.permission.MANAGE_EXTERNAL_STORAGE”/>
    <uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>
    <uses-permission android:name=“android.permission.READ_MEDIA_IMAGES” />
    <uses-permission android:name=“android.permission.READ_MEDIA_VIDEO” />
    <uses-permission android:name=“android.permission.READ_MEDIA_AUDIO” />

我在android 13模拟器上进行了测试,但在真实设备上也出现同样的问题,未请求许可并且录音不起作用

android flutter dart voice-recording
1个回答
0
投票

我认为你添加了正确的依赖项。 您可以在此处添加此互联网权限。

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

可能是网络问题。您可以使用permission_handler包向用户请求许可。 并使用 pub.dev 包,例如 just_audio。

© www.soinside.com 2019 - 2024. All rights reserved.