0

我正在编写一个简单的活动来记录和保存音频,最好保存到我的应用程序中的文件夹,但为简单起见,保存到 SD 卡。给我带来麻烦的代码行是

String path = Environment.getExternalStorageDirectory().toString() + "/" + "tempAppFiles/";
String filename = "test"+".mp4";
recorder.setOutputFile(path + filename);

其中记录器是 MediaRecorder 的一个实例。

当我运行应用程序时,我收到一个权限错误,指出

07-31 15:51:51.810: W/System.err(13670): java.io.FileNotFoundException: /mnt/sdcard/tempAppFiles/test.mp4 (Permission denied)

我查了一下这个问题,发现我需要在我的清单中添加几个权限标签,我添加了

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

我的清单。

我仍然遇到相同的权限问题,我找不到任何有类似问题的人。

有任何想法吗?

4

2 回答 2

0

tempAppFiles 不适合我。似乎您应该写入您正在编写的应用程序的包名称下的目录...

于 2012-08-01T01:00:13.483 回答
0

嗯......权限似乎是正确的,也许你把它们放在错误的地方,它们需要是root note 的孩子。

接下来你可以检查一下,是否可以通过检查来写入文件

boolean canIWrite = path.canWrite();

由于您还收到 FileNotFound 异常,您可以尝试...

String path = Environment.getExternalStorageDirectory().getAbsolutePath();

...代替...

String path = Environment.getExternalStorageDirectory().toString();

如果这根本没有帮助,仍然有一个捕获音频的官方示例 - 您应该将您的代码与以下内容进行比较:http: //developer.android.com/guide/topics/media/audio-capture.html

于 2012-07-31T23:53:55.573 回答