我正在编写一个简单的 Activity 来记录和保存音频,最好将其保存到应用程序中的文件夹中,但为了简单起见,将其保存到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)
我查了一下这个问题,发现我需要在 list 中添加几个权限标签,然后添加了
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
在我的 list 上。
我仍然遇到相同的权限问题,并且找不到任何存在类似问题的人。
有任何想法吗?
最佳答案
嗯...权限似乎是正确的,也许您将它们放在错误的位置,它们需要是children of the root note .
接下来,通过检查将文件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
关于android - Android权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750249/