Android权限问题

时间:2012-07-31 22:59:27

标签: android audio permissions

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

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

其中recorder是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" />

到我的清单。

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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

嗯......权限似乎是正确的,也许你把它们放在了错误的地方,它们需要children of the root note .

接下来,通过检查

来c an check, whether you can write该文件
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

答案 1 :(得分:0)

tempAppFiles不适合我。好像你应该写到你正在编写的应用程序包名下的目录......