解决
我把它改成了一点点
File path = new File(Environment.getExternalStorageDirectory(), "AndroidPaint");
File file = new File(path, tmpImg);
path.mkdirs();
if(!file.exists()) {
file.createNewFile();
}
os = new FileOutputStream(file);
source.compress(CompressFormat.JPEG, 100, os);
os.flush();
os.close();
也有问题可能是源我发现的Bitmap是null
问题
在我的Android程序上我希望在外部商店保存位图我获得了这样做的许可
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
并获得了一些代码
public class SaveOpen {
public static void save(Bitmap source) {
String tmpImg = String.valueOf(System.currentTimeMillis()) + ".jpg";
OutputStream os = null;
try {
File dir = new File(Environment.getExternalStorageDirectory(), "myapp");
if (!dir.mkdirs()) {
Log.e("save", "Directory not created");
}
File file = new File(dir, tmpImg);
if(!file.exists()) {
file.createNewFile();
}
os = new FileOutputStream(file);
source.compress(CompressFormat.JPEG, 100, os);
os.flush();
os.close();
}
catch (IOException e) {
Log.d("save", e.getMessage());
}
}
}
但是当我按下我的应用程序上的保存按钮时,我得到了
打开失败:ENOTDIR(不是目录)
例外,我做错了什么。我尝试了在谷歌找到的所有指南,请帮忙
答案 0 :(得分:0)
试试这个:
String myDir = Environment.getExternalStorageDirectory() + "/myapp";
File dir = new File(myDir);
答案 1 :(得分:0)
在较旧的设备上,如果有USB连接(磁盘模式),则无法访问外部存储,因此请记录您的Environment.getExternalStorageDirectory()
返回的内容。
答案 2 :(得分:0)
我遇到了同样的问题,它似乎是Android上的一个bug,我在adb命令行中的mkdir也失败了。然后我尝试重新启动手机,再也不会发生了。
答案 3 :(得分:0)
通过添加访问外部存储的权限解决了我的问题:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>