【发布时间】:2018-01-08 10:37:01
【问题描述】:
我想创建新文件并写入/读取应用程序设置。 isExternalStorageAvailable() 返回 false 并且应该为 true。 Android 模拟器外部内存 = 200mb。
boolean isExternalStorageAvailable() {
String extStorageState = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
return true;
}
return false;
}
添加了清单文件的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
saveButton.setEnabled(false);
System.out.println("Available: "+isExternalStorageAvailable()+", ReadOnly: "+isExternalStorageReadOnly());
}
else {
myExternalFile = new File(getExternalFilesDir(filepath), filename);
}
}
【问题讨论】:
-
我试过journaldev.com/9400/…没有成功
-
请记住,我不熟悉 Android,但
isExternalStorageAvailable()是否有可能返回 false,因为它根本不存在并且 不是该程序没有使用它的权限?我的建议是验证Environment.getExternalStorageState()返回的外部存储类型。 -
这里可以看到代码+模拟器+logcat:i.imgur.com/Gn5LlOn.png
-
请不要通过破坏您的帖子为人们增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已在 CC BY-SA 3.0 license 下授予 SE 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 SE 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。
标签: java android file emulation external