安卓:将文件保存到SD卡

3
我正在尝试从我的应用程序中将文件保存到设备的外部存储器中,具体来说,我正在尝试保存音频文件。我按照所有关于此操作的“教程”,但对我来说似乎都不是很清晰,而且它根本不起作用。SD卡上没有任何文件被创建,更不用说传输信息了。我认为我可能没有获取到正确的卡路径,但无论我尝试什么都不起作用。我已经尝试了只输入“/sdcard/”以及使用getExternalStorageDirectory()方法等其他随机实验。我花费了一整天的时间在这件看似微不足道的事情上,现在我甚至无法思考得很清楚了,希望您能理解我提供的细节不够充分,但此时任何建议都将是有帮助的。

可能是写入SD卡的权限的重复问题。 - Daniel A. White
你尝试过将它保存到Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)吗?在2.2及更高版本的设备上,它是SD卡上的音乐文件夹。 - Zelimir
我正在使用2.2.1版本的Droid X作为我的测试设备,但我的SD卡上没有音乐文件夹。当我使用您建议的方法时,它尝试使用路径/mnt/sdcard/Music。那个/mnt/应该在那里吗?我认为它应该以/sdcard/开头。我尝试将其硬编码为sdcard/Music,甚至尝试使用file(path).mkdirs()来查看是否会创建目录,但似乎什么都没有改变。 - Archaos
2个回答

6

您确定文件没有保存到SD卡吗?我曾经也遇到过同样的问题,但后来发现我一直都是正确地将文件保存到了SD卡中,只是相册无法及时刷新以显示我刚刚保存的文件。请使用Astro文件管理器确保文件尚未保存到SD卡中。如果这是问题所在,请添加以下代码行以刷新相册:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
                + Environment.getExternalStorageDirectory())));

3
这个答案应该会有所帮助:在Android上写SD卡的权限。不要忘记在你的Android.xml文件中声明:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我肯定已经设置了权限,所以这对我来说不是问题。 - Archaos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接