2014-02-25 93 views
0

我试图写日志在我的应用程序中,我在一些Android设备中出现下面的异常,/mnt/sdcard/Log/log.txt: open failed: ACCES (Permission denied)。我也使用了WRITE_EXTERNAL_STORAGE权限,但是我收到了这个错误。Android:SD卡权限被拒绝

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdCard.getAbsolutePath() + logDir); 
dir.mkdirs(); 

File file = new File(dir, logFileName); 
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(file, true), 8 * 1024)); 
writer.println(message); 
writer.flush(); 
writer.close(); 

请帮助我,在此先感谢。

+1

不要硬编码SD卡,你必须使用'Environment.getExternalStorageState()。equals(Environment.MEDIA_MOUNTED)''会让你知道内存是否被加载。然后使用'Environment.getExternalStorageDirectory()。getAbsolutePath()' – Skynet

+0

你可以发布你的代码吗? –

+0

File sdCard = Environment.getExternalStorageDirectory(); File dir = new File(sdCard.getAbsolutePath()+ logDir); dir.mkdirs(); File file = new File(dir,logFileName); PrintWriter writer = new PrintWriter(new BufferedWriter( \t \t \t new FileWriter(file,true),8 * 1024)); writer.println(message); writer.flush(); writer.close(); – Nijan

回答

2

不要硬编码的SD卡,则必须使用Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

会让你知道,如果内存加载。然后使用:

Environment.getExternalStorageDirectory().getAbsolutePath() 
0

您是否拥有AndroidManifest.xml文件的适当权限。如果是这样,那么我可以看到你用来保存写入日志的代码。