我写了一些代码在SD卡上保存图像一段时间前。现在,我将targetSDKVersion添加到清单中,现在我的文件保存代码停止工作。
我可以通过从我的应用程序清单中删除targetSdkVersion来复制它,不会将任何东西写入SD卡。
在Android1.5和1.6之间是否有API变化,使我无法写入SD卡?
File imageDirectory = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ FOLDER_NAME);
Log.d(ImageSaver.class.getSimpleName(), "SD Card status: "
+ Environment.getExternalStorageState());
if (!imageDirectory.exists()) {
boolean created = imageDirectory.mkdir();
Log.d(ImageSaver.class.getSimpleName(), "Created image directory "
+ imageDirectory + " " + created);
}
File imageFile = new File(imageDirectory.getAbsolutePath() + File.separator
+ name + nameSuffix + FILE_ENDING);
bitmap.compress(Bitmap.CompressFormat.PNG, FULL_QUALITY,
new FileOutputStream(imageFile));这是将位图压缩到SD卡的测试代码。对于下列清单条目,它不起作用:
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="8" />我得到以下例外:
09-27 11:35:58.689: ERROR/ImageSaver(8672):文件找不到09-27 11:35:58.689:错误/图像保护程序(8672):java.io.FileNotFoundException: /sdcard/文件夹/1285580158662.png
删除targetSdkVersion使它再次在所有平台上工作。
如何使代码与targetSdkVersion集一起运行?
发布于 2010-09-27 09:44:37
您必须将权限WRITE_EXTERNAL_STORAGE添加到您的清单中--它是新的,因为API级别为4。
https://stackoverflow.com/questions/3802586
复制相似问题