我看到其他一些人问同样的问题,但是发布的解决方案都没有帮助我.
我正在尝试从我的Android应用程序将(二进制)文件写入外部存储.
我把< uses-permission androID:name =“androID.permission.WRITE_EXTERNAL_STORAGE”/>进入我的清单,但我仍然无法创建任何文件.我用来创建文件的代码是
file folder = new file(Environment.getExternalStorageDirectory(), SAVE_DIRECTORY);file toWrite = new file(folder, "save.bin");if(!toWrite.exists()){ try { if(!folder.mkdirs()) Log.e("Save", "Failed to create directorIEs for save file!"); toWrite.createNewfile(); } catch (IOException e) { Log.e("Save", "Failed to create save file! " + e.getMessage()); } }
对mkdirs()的调用失败,createNewfile()抛出IOException(ENOENT,因为该目录不存在)
有谁知道怎么了?我甚至试过重启我的设备.我在Nexus 7上使用API级别8,如果它有任何区别的话.
解决方法:
首先,您应该检查ExternalStorageState
public static boolean isSDCARDAvailable(){ return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);}
如果此方法isSDCARDAvailable返回true,则使用您的代码
添加权限:
< uses-permission androID:name =“androID.permission.MOUNT_UNMOUNT_fileSYstemS”/>
总结以上是内存溢出为你收集整理的java – 无法在Android上写入外部存储全部内容,希望文章能够帮你解决java – 无法在Android上写入外部存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)