我正在尝试将新的wave文件写入外部存储设备上的Ringtones文件夹。但遗憾的是,该文件尚未创建。
我已经按照Android文档关于如何执行此操作,并按照建议的方式实现了它。
我还在清单中添加了适当的权限。同样,我已经检查过我的设备外部存储器是可读/可写的。
以下代码编写日志语句“未创建目录”。同样,任何后续的stream调用都会导致nullPointer。
public WavFileOutStream(String fileName)
{
// Get the directory for the user's public pictures directory.
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_RINGTONES), fileName);
if (!file.getParentFile().mkdirs()) {
Log.e("trace", "Directory not created");
}
try {
stream = new DataOutputStream(new FileOutputStream(file));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:0)
您误解了日志消息的含义及其原因。
记录File.mkdirs()返回:
如果目录已创建,则为true,
错误或目录已存在
由于铃声文件夹可能已经存在,你可能会遇到第二种情况。
如果您仍然有其他原因认为这不起作用,请将以下catch块生成的任何堆栈跟踪编辑到问题正文中。
答案 1 :(得分:0)
我经常忘记自己。确保您在申请清单中拥有此权限:)
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>