之前,我在我的root设备上使用KitKat
,我能够轻松创建临时文件。但是现在我已经在我的Nexus 5上安装了Marshmallow
,相同的代码给了我一个例外。
相关代码是:
File storageDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS);
// File repertoireStockage = Environment.getExternalStorageDirectory();
try {
file1 = File.createTempFile("RecordAudio",".mp4", storageDir);
}
catch (IOException e) {
Log.e("RecordAudio", "I/O Problem");
e.printStackTrace();
return;
}
是的,我确实拥有application
文件
Manifest.xml
标记之外的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
之前,我使用注释行来获取存储目录,但现在两者都无效。任何形式的帮助将不胜感激。
我在删除数据线后尝试保存文件,我仍然得到同样的例外。
答案 0 :(得分:0)
操作系统带来了许多新功能,它还有一个内置的文件管理器,许多用户可能会忽视它。
许多第三方文件管理器允许用户重命名文件,创建新文件夹,剪切文件等。但是,Android 6.0 Marshmallow的板载文件管理器不允许这样的操作。
请注意,它们返回的文件路径会在以后动态更改 应用程序在内部和外部存储设备之间移动。什么时候 建立文件路径,强烈建议您随时致电 这些API是动态的。不要使用硬编码文件路径或持久化 以前构建的完全限定文件路径。
链接供参考
1)http://developer.android.com/about/versions/marshmallow/android-6.0.html