2012-07-31 177 views
0

我正在寫一個簡單的活動來記錄和保存音頻,最好是在我的應用程序中的一個文件夾,但爲了簡單起見,還有SD卡。這給我帶來麻煩的代碼行是Android權限問題

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" /> 

我的清單。

我仍然收到相同的權限問題,我找不到任何人有類似的問題。

任何想法?

+0

你是否以編程方式創建目錄,如果它不在那裏? – t0mm13b 2012-07-31 23:03:08

+0

path.canWrite()說什麼?你把你的權限放在正確的地方嗎? – 2012-07-31 23:35:30

回答

0

嗯...的權限似乎是正確的,也許你已經把他們錯了地方,他們需要的是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

0

tempAppFiles不跟我定好了。似乎你應該寫一個目錄下的應用程序的包名稱...