java – sd.canWrite()总是返回false
发布时间:2020-12-14 16:19:23 所属栏目:Java 来源:网络整理
导读:我已经设置了以下我的 Android清单: uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" / 我的活动中有以下内容: File sd = Environment.getExternalStorageDirectory();boolean can_write = sd.canWrite(); sd返回/ mnt / sdcar
我已经设置了以下我的
Android清单:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 我的活动中有以下内容: File sd = Environment.getExternalStorageDirectory(); boolean can_write = sd.canWrite(); sd返回/ mnt / sdcard 我在我的设备上测试(evo 3d)而不是模拟器. SD卡已安装.它只在充电模式和没有插入usb电缆时发生.Google上的各种页面和堆栈上的帖子显示完全相同的方法来检查SD卡是否可写,所以我必须丢失一些东西. 更新: 我尝试以下代码,并抛出ioexception权限被拒绝. File TestFile = new File(sd + "/testfile.txt"); try { boolean result = TestFile.createNewFile(); if(result) { Log.i("tag","successfully created file"); } else { Log.i("tag","failed to create file"); } } catch (IOException e) { Log.e("tag",e.toString() + " " + TestFile); return false; } 我已经格式化了我的SD卡,重新安装它,并重新启动了手机,但仍然有同样的错误. UPDATE 显然,这是我自己的无知导致它失败.我的权限阻止在我的清单的错误部分.再次感谢 :) 解决方法
我不会使用sd.canWrite(),实际上,我会使用这样的东西:
String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { Log.d("Test","sdcard mounted and writable"); } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { Log.d("Test","sdcard mounted readonly"); } else { Log.d("Test","sdcard state: " + state); } 摘自此处:http://www.xinotes.org/notes/note/1270/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |