【发布时间】:2016-01-20 00:44:13
【问题描述】:
之前,我在我的根设备上使用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;
}
是的,我确实拥有Manifest.xml 文件中application 标记之外的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
之前,我使用注释行来获取存储目录,但现在,两者都不起作用。任何形式的帮助将不胜感激。
我试过拔掉数据线后保存文件,还是一样的异常。
【问题讨论】:
-
请分享你的logcat!
-
您必须请求权限。 Marshamallow 具有“运行时权限”。阅读此幻灯片以了解最新动态goo.gl/photos/9R6ss39caQHLyEmU6
标签: android android-sdcard android-permissions