我正在开发一个录音机应用程序,需要创建和存储音频文件,当我尝试在 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模拟器上进行了测试,但在真实设备上也出现同样的问题,未请求许可并且录音不起作用
我认为你添加了正确的依赖项。 您可以在此处添加此互联网权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
可能是网络问题。您可以使用permission_handler包向用户请求许可。 并使用 pub.dev 包,例如 just_audio。