在 Nexus S 的 SD 卡上保存问题
Posted
技术标签:
【中文标题】在 Nexus S 的 SD 卡上保存问题【英文标题】:Problem saving on sdcard of Nexus S 【发布时间】:2011-08-29 12:37:13 【问题描述】:我无法在 Nexus S 上保存文本文件。状态已挂载,路径正常 (/sdcard/filename
),我的清单文件中有用于外部存储的权限。
程序在这一行给出IOException
:
File file = new File(path, fileName + ".txt");
我不知道如何检测问题,尤其是如果它在 Galaxy Mini 上运行良好。一段时间以来,我一直在努力在三星 Galaxy 上保存一个 txt 文件,但通过从定义 min sdk 版本的清单文件中删除一行来使其工作。它实际上不接受任何 min sdk 版本,所以我暂时将其完全删除...
谁能帮忙?
【问题讨论】:
我认为如果您在创建“路径”和“文件名”的位置发布代码会有所帮助。此外,如果您粘贴异常,如果有的话。 【参考方案1】:String path= Environment.getExternalStorageDirectory().toString()+"/";
File file = new File(path+fileName + ".txt");
试试看
【讨论】:
看来问题出在 API 版本上:getExternalStorageDirectory() 适用于 (对不起,不习惯这个系统,cmets 过期等等)需要 getExternalFilesDir() 的 Nexus S。我将目标 android 版本更改为 2.2 并且一切正常,但我仍然不清楚如何使其也能在 2.1 上运行。【参考方案2】:如docs 中所述,您应首先检查是否已挂载外部媒体:
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
然后通过Environment.getExternalStorageDirectory()
使用它。
如果您打算保存公开访问的文件(图片、视频、音乐等),请使用 Environment. getExternalStoragePublicDirectory(..)
和适当的参数。
【讨论】:
以上是关于在 Nexus S 的 SD 卡上保存问题的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Android API 24+ 在 SD 卡上写入文件